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

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

我该如何去做呢?

最佳答案

当您使用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);

关于javascript - 根据辅助数组中的第一个字符串从最大到最小字符串大小对二维数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921686/

相关文章:

javascript - jquery mobile 设置单选按钮组的选定值

arrays - 如何设计存储数组的简单 Firebase 数据库?

javascript - 创建多项选择测验 "game"

c# - 多维与交错数组

javascript - polymer :铁选择器问题

arrays - 如何通过 INT id 从 PostgreSQL 函数返回值数组

javascript - 如何停止 Angular 重复的 api 调用

javascript - 如果在 Angular 1.3+ 中使用一次性绑定(bind),则指令中的观察者为零

javascript - window.open React Native WebView

javascript - 提高使用 jQuery 搜索 JSON 对象的性能