订购多个数字数组
Order multiple arrays of numbers
我有一个包含多个数字数组的数组,我想简单地对它们进行排序。
例如:
my_parent_array = [ [2, 6, 31],
[2, 3, 25],
[2, 6, 17, 2] ];
它们都是正整数,每个子数组可以有很多值。
我需要 sort/order my_parent_array
才能保持秩序。
所以在上面的例子中,结果应该是这样的:
my_parent_array = [ [2, 3, 25],
[2, 6, 17, 2],
[2, 6, 31] ];
我该怎么做?
谢谢。
编辑
此数组仅包含 数字(不包含字符串或字母)。
我需要它首先按第一个值排序子数组,然后按第二个值排序,依此类推。
它类似于按字母顺序排序,但这是数字数组而不是字母字符串。
我认为 .sort()
不会成功,因为我正在处理子数组。
正如@amadan 指出的那样,简单的 .sort()
是行不通的,因为如果我使用标准 .sort()
,默认情况下 10
会出现在 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;
});
编辑:我一直在思考极端情况...
编辑:我认为现在应该解决极端情况。
我有一个包含多个数字数组的数组,我想简单地对它们进行排序。
例如:
my_parent_array = [ [2, 6, 31],
[2, 3, 25],
[2, 6, 17, 2] ];
它们都是正整数,每个子数组可以有很多值。
我需要 sort/order my_parent_array
才能保持秩序。
所以在上面的例子中,结果应该是这样的:
my_parent_array = [ [2, 3, 25],
[2, 6, 17, 2],
[2, 6, 31] ];
我该怎么做?
谢谢。
编辑
此数组仅包含 数字(不包含字符串或字母)。
我需要它首先按第一个值排序子数组,然后按第二个值排序,依此类推。
它类似于按字母顺序排序,但这是数字数组而不是字母字符串。
我认为 .sort()
不会成功,因为我正在处理子数组。
正如@amadan 指出的那样,简单的 .sort()
是行不通的,因为如果我使用标准 .sort()
,默认情况下 10
会出现在 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;
});
编辑:我一直在思考极端情况...
编辑:我认为现在应该解决极端情况。