Javascript:排序多维数组

时间:2010-10-07 21:56:29

标签: javascript sorting multidimensional-array

创建像这样的多维数组后,如何对其进行排序?

假设已经定义了“标记”:

var location = [];
for (var i = 0; i < markers.length; i++) {
  location[i] = {};
  location[i]["distance"] = "5";
  location[i]["name"] = "foo";
  location[i]["detail"] = "something";
}

对于上面的例子,我需要按'距离'排序。 我已经看到了关于排序数组和多维数组的其他问题,但似乎没有一个对此有用。

3 个答案:

答案 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,首先表示b0表示ab相等,<0表示首先a

答案 1 :(得分:10)

你试过这个吗?

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

答案 2 :(得分:1)

到目前为止发布的两个排序函数都应该有效,但是你的主要问题是将location用作变量,因为它已经是系统定义的。