排序多维数组javascript

时间:2013-08-01 14:48:43

标签: javascript sorting

我想对多维数组进行排序。

数组看起来像这样:[[1,2],[2,3],[5,6],[8,9]]

我想按X值对其进行排序,并保持x,y值配对。

我在网站上搜索了多维排序,发现像these这样的线程,其中sort函数被修改如下:

location.sort(function(a,b) {

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

});

我不确定如何修改此功能以便为我工作,但是......我能得到一些帮助吗?谢谢!

3 个答案:

答案 0 :(得分:5)

只需比较数组值 -

var myarray =  [[1,2],[2,3],[5,6],[8,9]];

myarray.sort(function(a,b) { return a[0] - b[0]; });

答案 1 :(得分:2)

您只需要比较您想要的ab部分。使用数字,您可以使用它们的区别:

location.sort(function(a, b){
    return a[0] - b[0];
});

请注意,您提供的数组已按每个数组中的第一个值排序。如果你想按降序排序,你可以这样做:

location.sort(function(a, b){
    return b[0] - a[0];
});

答案 2 :(得分:1)

实现这一目标最安全的方法是使用数字键执行您的问题:

location.sort(function(a,b) { return a[0]-b[0]; })

如果某个机会,每个子数组的第一个元素总是一个数字

location.sort(); 
//only works if first element in child arrays are single digit (0-9)
//as in the example: [[1,2],[2,3],[5,6],[8,9]]
//[[1,2],[22,3],[5,6],[8,9]] - will not work as 22 is not a single digit