我有一个包含多个数字数组的数组,我想简单地对它们进行排序。
例如:
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
之前。
那么有一个排序修饰符可以做到这一点,还是我需要制作自己的排序算法?
感谢。
答案 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;
});
编辑:我一直在考虑角落案件......