Javascript:排序多维数组

Jef*_*eff 27 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";
}
Run Code Online (Sandbox Code Playgroud)

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

lin*_*lnk 45

location.sort(function(a,b) {

  // assuming distance is always a valid integer
  return parseInt(a.distance,10) - parseInt(b.distance,10);

});
Run Code Online (Sandbox Code Playgroud)

javascript的array.sort方法有一个可选参数,它是自定义比较的函数参考.返回值>0意味着b第一,0这意味着ab相等,<0这意味着a第一.

  • @Deca`parseFloat(a.distance)`在这种情况下是正确的. (5认同)

use*_*716 10

你试过这个吗?

location.sort(function(a,b) {
    return a.distance - b.distance;
});
Run Code Online (Sandbox Code Playgroud)