创建像这样的多维数组后,如何对其进行排序?
假设已经定义了“标记”:
var location = [];
for (var i = 0; i < markers.length; i++) {
location[i] = {};
location[i]["distance"] = "5";
location[i]["name"] = "foo";
location[i]["detail"] = "something";
}
对于上面的例子,我需要按'距离'排序。 我已经看到了关于排序数组和多维数组的其他问题,但似乎没有一个对此有用。
答案 0 :(得分:45)
location.sort(function(a,b) {
// assuming distance is always a valid integer
return parseInt(a.distance,10) - parseInt(b.distance,10);
});
javascript的array.sort
方法有一个可选参数,它是自定义比较的函数参考。返回值为>0
,首先表示b
,0
表示a
和b
相等,<0
表示首先a
答案 1 :(得分:10)
你试过这个吗?
location.sort(function(a,b) {
return a.distance - b.distance;
});
答案 2 :(得分:1)
到目前为止发布的两个排序函数都应该有效,但是你的主要问题是将location
用作变量,因为它已经是系统定义的。