我有一个这样的2D数组:
[[0,23],[19,30],[6,47],[5,59],[1,56],[1,20],[19,10]]
我如何根据pairs的值对它进行排序,像这样:
[[0,23],[1,20],[1,56],[5,59],[6,47],[19,10],[19,30]]
以下是我的尝试:
let arr = [[0,23],[19,30],[6,47],[5,59],[1,56],[1,20],[19,10]];
let result = arr
.map(a => `${a[0]}.${a[1]}`)
.sort()
.map(a => [parseInt(a.split('.')[0]),parseInt(a.split('.')[1])]);
console.log(result);
.as-console-row-code {
white-space: initial !important;
}
下面的代码仍然给出错误的结果。有什么简单的解决方案吗?
5条答案
按热度按时间aurhwmvo1#
您可以按第一个和第二个索引值的增量进行排序。
jmo0nnb32#
我对map语句做了注解,并没有把它们转换成字符串。这使得它按字典顺序排序。我们可以在这里使用自定义排序函数,如上所示
8hhllhi23#
类似于this answer,但适用于任何长度的内部数字数组(不仅仅是2个元素):
9lowa7mx4#
正确的解决方案是在这里How to sort 2 dimensional array by column value?你可以使用以下代码:
}
yzuktlbb5#
原始问题方法加上解构: