根据辅助数组中的第一个字符串,从最大到最小的字符串大小排序二维数组?

时间:2015-08-10 14:03:45

标签: javascript arrays

所以说我有一个看起来像这样的数组:

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]];

我将如何做到这一点?

2 个答案:

答案 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;
});