我知道这个答案并没有遗漏,但请耐心等待,我已经尝试了很多解决方案,但我仍然无法使用 JavaScript 按第 4 个值对二维数组进行排序。
这是列表的样子(数组可能包含无限数量的列表):
colors = [[247, 247, 247, 429, 1], [132, 128, 132, 2, 1], [37, 29, 37, 649, 1]]
输出应该是:
colors = [[37, 29, 37, 649, 1], [247, 247, 247, 429, 1], [132, 128, 132, 2, 1]]
这是我尝试过的:
colors.sort(function(a,b){
alert(a[3] - b[3]);
});
上面的代码返回,NaN
,我不确定为什么...
如果它可以帮助 python 相当于我正在尝试实现的目标:
sorted_colors = sorted(colors(u), key=lambda x: -x[3])
最佳答案
Array#sort回调需要返回一个数字。你不返回减法的结果,你只是用警告显示它。移除 alert()
,返回 b[3] - a[3]
得到你想要的顺序。
var colors = [[247, 247, 247, 429, 1], [132, 128, 132, 2, 1], [37, 29, 37, 649, 1]];
colors.sort(function(a,b){
return b[3] - a[3];
});
console.log(colors);
关于javascript - 如何按第 4 个值对二维数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45568618/