0

javascriptでJSONオブジェクトをソートするには?

obj = JSON.parse(count);   //count is responseText

count= {"MH_YTML":"Yavatmal H.O","MH_WRDH":"Wardha H.O","MH_SWTW":"Sawantwadi H.O"}  //count{key,value}

カウント値 (Yavatmal HO、Wardha HO、Sawantwadi HO) を昇順で並べ替えたい。

4

3 に答える 3

2

オブジェクトを並べ替えることはできません。ただし、配列を作成して並べ替えることができます。このようなもの:

var count= {"MH_YTML":"Yavatmal H.O", "MH_WRDH":"Wardha H.O", "MH_SWTW":"Sawantwadi H.O"},
    countArr = [];

for (var i in count) {
    countArr.push({key: i, val: count[i]});
}
countArr.sort(function(a, b) {
    if (a.val < b.val) return -1;
    if (a.val > b.val) return 1;
    return 0; 
});

デモhttp://jsfiddle.net/dfsq/8S4aD/1/

于 2013-03-28T11:44:28.053 に答える
2

JavaScript オブジェクト (および該当する場合はその JSON 表現) には順序がありません。これらは、プロパティ名と値の順不同のバッグです。

特定の順序でエントリを含む配列を作成できます。

于 2013-03-28T11:38:58.013 に答える
1

最初にそのオブジェクトを配列に変換します。各配列要素はオブジェクトのキーと値のペアになり、カスタム関数を使用してその配列を値で並べ替えます。その後、それをオブジェクトに戻すことはできますが、オブジェクト プロパティの順序が同じであることを保証することはできません。

于 2013-03-28T11:38:43.310 に答える