我需要按字母顺序排序JSON对象。
我想将它发送到对象数组然后排序。现在我成功地将它发送到多维数组和排序,但仍然无法对对象数组进行排序。
我有对象。
var Response = {
"10001": "Fort Worth",
"10002": "Dallas",
"32402": "Austin"
};
我把它发送到数组。
var sort_array_of_array = [];
for (var my_key in Response) {
var inner_array = [];
inner_array[0] = my_key;
inner_array[1] = Response[my_key];
sort_array_of_array.push(inner_array);
}
结果我得到一个数组
sort_array_of_array: Array[3]
0: Array[2]
0: "10001"
1: "Fort Worth"
length: 2
1: Array[2]
0: "10002"
1: "Dallas"
length: 2
2: Array[2]
length: 3
我对它进行了分类。
sort_array_of_array.sort(function(a, b)
{
// if they are equal, return 0 (no sorting)
if (a[1] == b[1]) { return 0; }
if (a[1] > b[1])
{
// if a should come after b, return 1
return 1;
}
else
{
// if b should come after a, return -1
return -1;
}
});
我检查了排序的数组。
<div id="my_after_sort"></div>
for (i = 0; i < sort_array_of_array.length; ++i) {
//alert(sort_array_of_array[i][0]);
$('#my_after_sort').append(sort_array_of_array[i][1]);
}
但是如果我将原始对象发送到对象数组,我就无法对其进行排序。
var sort_array_of_object = [];
for (var key in Response) {
sort_array_of_object.push({key:Response[key]});
}
是否可以对这个对象数组进行排序以及如何进行排序?
答案 0 :(得分:0)
制作像这样的对象数组要简单得多:
var arrayOfObjects = [];
for (var key in Response) {
arrayOfObjects.push({
key: key,
name: Response[key]
});
}
然后,您可以通过比较每个元素的name
属性对其进行排序:
arrayOfObjects.sort(function(a,b) {
if (a.name > b.name) {
return 1;
} else if (a.name < b.name) {
return -1;
} else {
return 0;
}
});