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

标签 javascript arrays

我知道这个答案并没有遗漏,但请耐心等待,我已经尝试了很多解决方案,但我仍然无法使用 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/

相关文章:

javascript - 在 .map 中使用 `await` 可以工作,但似乎会跳过父级的 `await` 功能

javascript - d3.request.get 中 'data' 参数的数据类型是什么?

除非在分配时打印该值,否则 Char 数组值将打印为空 - C

c - 我想用指针将一些字符串放在动态二维数组中(C 编程)

c - 初始化字符数组时出错

javascript - 在一个键 JSON 中存储多个数组值

javascript - 在 javascript for 循环中查询多个 JSON 表

javascript - 使用循环将内容添加到多个类,但每个类中只有 1 个元素接收内容

javascript - 如何使这个 jQuery 不计算列表中的子列表?

java - 当java中的字符串具有双字节字符时,如何对字符串进行子串