订购多个数字数组

时间:2015-03-30 01:35:55

标签: javascript arrays sorting multidimensional-array

我有一个包含多个数字数组的数组,我想简单地对它们进行排序。

例如:

my_parent_array = [ [2, 6, 31],
                    [2, 3, 25],
                    [2, 6, 17, 2] ];  

它们都是正整数,每个子数组可以有很多值。

我需要对my_parent_array进行排序/排序。

所以在上面的例子中,它应该是这样的结果:

my_parent_array = [ [2, 3, 25],
                    [2, 6, 17, 2],
                    [2, 6, 31] ];  

我该怎么做?

感谢。

编辑

此数组仅包含数字(并且没有字符串或字母) 我需要它先按照第一个值排序子数组,然后是第二个等等 它类似于按字母顺序排序,但这是数字数组而不是字母串。

我认为.sort()因为处理子阵列而无法解决问题 正如@amadan指出的那样,简单的.sort()不起作用,因为如果我使用标准.sort(),默认情况下10会出现在2之前。

那么有一个排序修饰符可以做到这一点,还是我需要制作自己的排序算法?

感谢。

1 个答案:

答案 0 :(得分:2)

为了避免我在评论中发布的问题(默认情况下排序为词典),请介绍自己的比较器功能:

my_parent_array.sort(function(a, b) {
  var len = Math.min(a.length, b.length);
  for (var i = 0; i < len; i++) {
    if (a[i] < b[i]) return -1;
    if (a[i] > b[i]) return 1;
  }
  return a.length - b.length;
});
编辑:我一直在考虑角落案件......
编辑:我认为现在应该解决角落案件。