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

JavaScript 对象(及其相关的 JSON 表示)没有顺序。它们是属性名称和值的无序包。

您可以创建一个包含特定顺序条目的数组。

于 2013-03-28T11:38:58.013 回答
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 回答
1

首先将该对象转换为数组,其中每个数组元素将是对象中的一对键和值,然后使用自定义函数按值对该数组进行排序。然后您可以将其转换回对象,但不能保证对象属性顺序将保持不变。

于 2013-03-28T11:38:43.310 回答