所以说我有一个看起来像这样的数组:
var array = [["This should be last", 1],
["This should be first I think", 1],
["This is the middle one", 1]];
每个辅助数组的第二个值(在这种情况下始终为1)对于排序是任意的。现在显然.sort()
在这里没有直接用途。 (或许它会?)
我需要从最大到最小的字符串大小对数组进行排序。所以在排序过程之后它应该是这样的:
var array = [["This should be first I think", 1],
["This is the middle one", 1]
["This should be last", 1]];
我将如何做到这一点?
答案 0 :(得分:1)
使用sort
时,您可以提供自定义比较功能:
array.sort(function(a,b) {
return b[0].length - a[0].length;
});
在ECMAScript 6中,它可以简化为
array.sort((a,b) => b[0].length - a[0].length);
答案 1 :(得分:0)
由于sort使用sort函数,你可以查看数组的第一个元素,并按它排序:
array.sort(function(a, b) {
var aStr = a[0];
var bStr = b[0];
return bStr.length - aStr.length;
});