2
在过去的2天里,我一直在打破我的大脑,试图找到问题的解决方案,但我无法弄清楚。按照数字和按字母顺序排列多维数组javascript
我需要首先数字排序数组,然后按字典顺序排列数组。虽然一个定制的b函数可以解决第一个问题,但是一个正常的array.sort()可以完成第二个。但我不知道如何将它们结合起来。
我有类似于此的数组:
var arr = [
[ '80', '1', '230' ],
[ '9', '1', '230' ],
[ 'Ken', '6', '100' ],
[ 'Dan', '2', '800' ],
[ 'Tom', '6', '500' ],
[ 'team10', '2', '222' ],
[ 'team9', '2', '222' ]
];
此阵列需要进行数值首先根据在ARR [n]中的数字排序[1](最大到最小)。结果具有相同的arr [n] [1]值,需要根据arr [n] [2](从最大到最小)对它们进行数值排序。最后,使用相同的值[n] [1]和[n] [2]的结果需要根据arr [n] [0]按照字母顺序排序。
到目前为止,我已经得到了最远的是这种方法:
function sortArr() {
arr.sort(function(a,b) {
if (a[1] === b[1]) {
if (a[2] === b[2]) {
return b[0] < a[0];
}
return a[2]-b[2];
}
return b[1]-a[1]
});
}
虽然数值排序与这个作品中,辞书排序不会。任何帮助,将不胜感激。
谢谢尼娜。同样的问题。如果您在原始数组中切换team10和team9并运行代码,则它们将不会正确排序。 – Falk
这是因为'1 <9'你必须解析数字并比较它们,而不是每个字符比较 – nidomiro