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

时间:2016-04-28 17:38:38

标签: javascript arrays sorting safari

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

排序:

nc = NbClust(scale(df),distance="euclidean", min.nc=2,max.nc=7,
  method="complete", index="alllong")

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

我在Chrome和Firefox中试过这个功能,它运行得很好。出于某种原因,当我在Safari中尝试时,生成的数组没有排序。为什么会发生这种情况,我该怎么做才能解决它?

这是功能:

[[ 'dog', 20 ], [ 'car', 10 ], [ 'horse', 2 ]]

1 个答案:

答案 0 :(得分:1)

您需要返回一个小于零,零或大于零的值。请参阅文档here

此提案返回经过比较的项目值的差异。有一次,sortorde正在逐渐减少,我们需要从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>');

顺便说一下,无需分配结果。排序正在到位