为什么这个排序功能在 Safari 中不起作用

Why isn't this sorting function working in Safari?

本文关键字:Safari 不起作用 功能 排序 为什么      更新时间:2023-09-26

我写了一个函数,根据每个子数组的第二个元素对数组数组进行排序。例如:

排序:

var x = [['car', 10], ['dog', 20], ['horse', 2]]

应该返回[[ 'dog', 20 ], [ 'car', 10 ], [ 'horse', 2 ]]

我在Chrome和Firefox中尝试了此功能,它工作得很好。由于某种原因,当我在 Safari 中尝试时,生成的数组未排序。为什么会发生这种情况,我该怎么做才能解决它?

这是函数:

     x = x.sort(function(a,b){
  return a[1] < b[1];
})

您需要返回一个小于零、零或大于零的值。请在此处查看文档。

此建议返回精确比较的项目值的差值。当排序递减时,我们需要从 b 中减去 a 的值。

function(a, b){
    return b[1] - a[1];
});

例:

var x = [['car', 10], ['dog', 20], ['horse', 2]];
x.sort(function(a,b){
    return b[1] - a[1];
});
document.write('<pre>' + JSON.stringify(x, 0, 4) + '</pre>');

顺便说一句,无需分配结果。排序工作到位