Javascript: sort multidimensional array

牧云@^-^@ 提交于 2019-12-29 04:30:15

问题


After creating a multi-dim array like this, how do I sort it?

Assuming 'markers' is already defined:

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

For the above example, I need to sort it by 'distance'. I've seen other questions on sorting arrays and multi-dim arrays, but none seem to work for this.


回答1:


location.sort(function(a,b) {

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

});

javascript's array.sort method has an optional parameter, which is a function reference for a custom compare. the return values are >0 meaning b first, 0 meaning a and b are equal, and <0 meaning a first.




回答2:


Have you tried this?

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



回答3:


Both sort functions posted so far should work, but your main problem is going to be using location as a variable as it is already system defined.



来源:https://stackoverflow.com/questions/3886165/javascript-sort-multidimensional-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!