c语言利用索引数组排序,使用索引之一对数组进行排序

小编典典

您可以使用像这样的排序:

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

2020-07-28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值