【发布时间】:2019-08-05 22:21:34
【问题描述】:
我需要对嵌套数组中的元素进行排序。
每个嵌套数组有1个字符串和1个整数。
var arr1 = [["2000", 2], ["11", 2], ["11", 2], ["10003", 4], ["22", 4], ["123", 6], ["1234000", 10], ["44444444", 32], ["9999", 36]]
我需要通过升序整数(而不是字符串)来排序数组。我可以这样做:
var res = arr1.sort(function(a, b) {
return a[1] - b[1];
});
但是,当 2 个整数具有相同的值时,我需要按它们的字符串对它们进行排序(仅适用于匹配的整数,而不适用于数组的其余部分)。
结果应该是:
[["11", 2], ["11", 2], ["2000", 2], ["10003", 4], ["22", 4], ["123", 6], ["1234000", 10], ["44444444", 32], ["9999", 36]]
我不知道如何做到这一点。我尝试了一个 for 循环,但一直出错。
有人帮我解决这个问题吗?
谢谢!
【问题讨论】:
-
被骗的best answer实际上不是最上层的... TLDR:
return a[1] - b[1] || a[0] - b[0]
标签: javascript arrays multidimensional-array nested