JS数组方法sort()中参数问题

之前在网上学js,了解到js的sort方法可以实现排序,简单来说就是这样

arr.sort(funcion (a,b){return a-b})实现升序,return a-b就是实现降序;当时很多资料呈现的是,a这个参数表示前一个值,b表示后一个值,但经过我的测试,并不是这样!

直接给大家上我的测试图

很清楚地可以看到a表示的是后一个数,b表示的是前一个数。看到博客有人说是控制台有问题,然后我便进行了我的下一步验证------既然return a-b能实现升序,且根据网上所言的,a为前一个数,b为后一个数,那么如果前一个数大于后一个数,a-b就大于0,所以return一个大于0的数应该表示把前一个数和后一个数交换位置。然后我便直接这样干了:

结果令人惊讶,如果return 一个正数,是根本不会对数组中的元素进行交换位置的。那么return一个负数就应该表示交换位置,上图吧:

这直接相当于了arr.reverse(),对每一步都进行了交换。

综上所述:js中的sort()方法中的参数为一个函数,如果不传参,默认按照ASCII码进行排序;

如果传参,函数中有两个参数,第一个表示后一个元素,第二个表示前一个元素,return 正数 表示默认它们俩之间的顺序,不进行改动;return 负数表示否定它们之间的顺序,进行交换位置。

 

希望这篇文章可以帮助到大家!

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值