为了账号安全,请及时绑定邮箱和手机立即绑定

arr.sort()排序

 arr.sort(function(a, b){ return a-b;});//可以实现对数字元素进行排序。sort()函数会两两进行比较按从小到大排序。问题:为什么return的是a-b?内部如何实现循环的?

正在回答

3 回答

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

现在有 arr=[1,15,8,9,85]

1-15 值为负,位置不变

15-8 值为正,互换位置

15-9 值为正,互换位置

15-85 值为负,位置不变

输出为[1,8,9,15,85]

5 回复 有任何疑惑可以回复我~
#1

良艺 提问者

谢谢!能看到sort的底层代码就很好了!
2015-08-06 回复 有任何疑惑可以回复我~
#2

慕斯卡2379749

如果是[1,15,9,8,85]是什么情况
2023-05-26 回复 有任何疑惑可以回复我~
  • rftnhgnhgn

0 回复 有任何疑惑可以回复我~

为什么为正就互换位置啊?

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

arr.sort()排序

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信