我编写了一个函数,根据每个子数组的第二个元素对数组数组进行排序。例如:
排序:
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 ]]
答案 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>');
顺便说一下,无需分配结果。排序正在到位。