您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用索引之一对数组进行排序

使用索引之一对数组进行排序

您可以使用像这样的排序

arr.sort((a,b) => {
  return a[2] < b[2] // To sort in descending order
  // return a[2] > b[2] // To sort in ascending order
})

例:

var arr = [
  ['foo', 'fifth', 5],
  ['fee', 'seventh', 7],
  ['faa', 'third', 3]
];

var sortedArr = arr.sort(function(a,b){
  return a[2] < b[2]
});

console.log(sortedArr)

首先,让我们假设这个数组:

[1,2] // where a = 1, b = 2

大于b吗?

如果是,则需要排序=> return true

否则,我们不需要排序=>返回false

是小于b吗?

如果是,则需要排序=> return true

否则,我们不需要排序=>返回false

在前面的示例中,我们正在验证a是否小于b,然后返回true进行排序,否则返回false,因为它已经降序了。

请不要返回布尔值进行排序,因为sort需要一个小于零,零或大于零的值。忽略相等的情况实际上可能有效,但是这会使 。

您应该考虑返回0、1或-1。对于您的情况,应使用以下代码

arr.sort((a,b) => {
  if(a[2] < b[2]) return 1
  if(a[2] > b[2]) return -1
  if(a[2] === b[2]) return 0
})

如果这些值只是整数(不包含Infinity和NaN),则可以将其简化如下,

arr.sort((a,b) => b[2]-a[2])
其他 2022/1/1 18:17:32 有493人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶