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

javascript 数组的sort()方法

javascript 数组的sort()方法

Helenr 2018-12-06 19:28:16
var numbers = [3,342,23,22,124]; numbers.sort(function(a,b){return b - a}); 以上代码就能求出数组的最大值,在sort()方法里传入的是一个比较函数。 小弟不才,只知道这么用,但是不a,b分别代表什么我一点都不清楚! 或者说他的内部是怎样实现的? 麻烦各位大侠讲解一下 再在感激不尽! 谢谢各位大侠了哟!
查看完整描述

5 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

var numbers = [3,342,23,22,124];

numbers.sort(function(a,b){return b - a});

第一次比较时,a=342,b=3,

3<242

第二次 a=23, b=3

3<23

第三次 a=23,b=342

342>23

第四次 a=23,b=3

3<23

第五次 a=22,b=3

3<22

第六次a=22,b=23

.....

至于怎么样自己看吧...

 

 

 

 

 

 

 

 

查看完整回答
反对 回复 2018-12-24
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

我不是很清楚,应该是a 与 b进行比较,就对应的序列比较如 1,与2 比较 类似冒泡法。

查看完整回答
反对 回复 2018-12-24
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这个就是要告诉你,如果你要排序的是字符串数组也可以像这样排序。例如:

var numbers = ['3','342','23','22','124'];

numbers.sort(function(a,b){return b.length - a.length});

这样就会按照长度来排序了,这个函数就是排序时的回调函数

查看完整回答
反对 回复 2018-12-24
?
互换的青春

TA贡献1797条经验 获得超6个赞

为了正确对数组进行排序,必须为sort()方法定义一个比较函数

对传入的一对值进行比较,让后返回3个值的任何一个:小于0.等于0,或者大于0.

当函数的返回值小于0的时候,可知道第二个值大于第一个值,因此第二个值排序靠后,

当函数的返回值大于0的时候,可以知道第一个值大于第二个值,第一个值靠后,

当等于0的时候,就不必排序了,这两个值是相等的

numbers.sort(function(a,b){return b - a});是降序排列,return a-b是升序排列;

查看完整回答
反对 回复 2018-12-24
  • 5 回答
  • 0 关注
  • 497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信