1

私は小数値でこのような配列を持っています

["$79.34", "$99.23", "$149", "$139.34", "$379", "$199.00", "$5", "$9", "$14", "$39", "$59", "$24", "$29", "$189", "$10,$20", "$500", "$1", "$4", "$8.66", "$2", "$19", "$18", "$11", "$15", "$40", "$89", "$100", "$400.15", "$30,$119", "$15,$30"]

私のストアでは、javascript を使用してそれらをソートする方法がわかりません。$(またはその問題のシンボル)が私に問題を引き起こしているようですか?

どうすればこれを解決できますか?

4

2 に答える 2

3
var prices = [...]
prices.sort(function(a,b) { return (a.substring(1)) - (b.substring(1)); })

トリックを行うでしょう。

于 2012-06-01T21:05:45.453 に答える
0

編集:これを示すために JSFiddleを書きました

function sortPrices(priceStrings) 
{
    //first sanitize the data
    for (var i = 0; i < priceStrings.length; i++) 
    {
        if (priceStrings[i].toString().search(",") != -1) 
        {
            var splits = priceStrings[i].toString().split(",");
            priceStrings.splice(i, 1)
            priceStrings = priceStrings.concat(splits);
            i--;
        }
    }
    var prices = [];
    for (var i = 0; i < priceStrings.length; i++) 
    {
        priceStrings[i] = priceStrings[i].toString().replace("$", "");
        prices.push(parseFloat(priceStrings[i]));
    }

    prices.sort(function(a,b){return a - b});

    return prices;
}​
于 2012-06-01T21:02:50.040 に答える