javascript - 如何按第4个值对二维数组排序?

原文 标签 javascript arrays

我知道答案并没有在这个答案上缺失,但请耐心等待,我尝试了许多解决方案,但仍无法使用JavaScript按4th值对二维数组进行排序。

列表如下所示(数组可能包含无限数量的列表):

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/

相关文章:

java - 如何深度复制不规则的二维数组

javascript - 用 Protractor 测试确认对话框

javascript - 使用带有依赖项的useEffect Hook 时,何时触发清除功能?

javascript - 使用Ajax在Django框架中加载文件

javascript - 遍历一系列函数

javascript - 基于带有对象[JS/TypeScript]的另一个数组的字符串数组

javascript - keydown在三个js Canvas 中不起作用,OrbitControls在

javascript - CSS和JS文件不会突然加载

java - 从1D阵列初始化2D阵列

c - 使用包含浮点数数组的 OpenCL 将结构传递给 GPU