JavaScript如何将二维数组按子数组首个数值进行升序排序
问题解决方法
错误原因
你写的sort比较函数直接对a、b两个子数组做减法运算,JS中数组参与算术运算时会被隐式转换为字符串,无法得到正确的数值比较结果,所以排序没有生效。
正确实现
你需要在比较函数中取两个子数组的第一个元素做数值比较,代码如下:
// 版本1:直接排序,会修改原newArray数组 let sortArray = newArray.sort(function (a, b) { return a[0] - b[0] })
如果不想改动原newArray的顺序,可以先拷贝数组再执行排序:
// 版本2:不修改原数组,先拷贝再排序 let sortArray = [...newArray].sort((a, b) => a[0] - b[0])
执行上述代码后得到的sortArray就是你需要的、按子数组首个数值升序排列的结果。
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

