Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对多维数组进行数字和字典排序_Javascript_Arrays_Algorithm_Sorting - Fatal编程技术网

Javascript 对多维数组进行数字和字典排序

Javascript 对多维数组进行数字和字典排序,javascript,arrays,algorithm,sorting,Javascript,Arrays,Algorithm,Sorting,在过去的两天里,我一直在绞尽脑汁想办法解决这个问题,但我想不出来 我需要先对数组进行数字排序,然后按字典排序。自定义a

在过去的两天里,我一直在绞尽脑汁想办法解决这个问题,但我想不出来

我需要先对数组进行数字排序,然后按字典排序。自定义a 我有一个类似于此的数组:

var-arr=[
[ '80', '1', '230' ],
[ '9', '1', '230' ],
[‘肯’、‘6’、‘100’],
['Dan','2','800'],
[‘汤姆’、‘6’、‘500’],
['team10','2','222'],
['team9','2','222']

];我建议使用带有for字符串的链式方法

排序顺序:

  • 在索引1描述
  • 在索引2描述
  • 在索引0处
    • 非商业部分asc
    • 商务部分
var arr=[['80','1','230'],['9','1','230'],['Ken','6','100'],['Dan','2','800'],['Tom','6','500'],['team10','2','222'],['team9','2','222'];
arr.sort(函数(a,b){
var aa=a[0]。拆分(/(\d+)/g),
bb=b[0]。拆分(/(\d+)/g);
返回b[1]-a[1]||
b[2]-a[2]||
aa[0].localeCompare(bb[0])| | aa[1]-bb[1];
});

控制台日志(arr)谢谢你,尼娜。同样的问题。如果在原始数组中交换team10和team9并运行代码,它们将无法正确排序。这是因为
1<9
必须解析数字并进行比较,而不是按字符进行比较