javascript 数组的sort()方法

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

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

以上代码就能求出数组的最大值,在sort()方法里传入的是一个比较函数。

小弟不才,只知道这么用,但是不a,b分别代表什么我一点都不清楚!

或者说他的内部是怎样实现的?

麻烦各位大侠讲解一下

再在感激不尽!

谢谢各位大侠了哟!

Helenr
浏览 498回答 5
5回答

RISEBY

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 ..... 至于怎么样自己看吧...                

慕哥9229398

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

慕哥6287543

这个就是要告诉你,如果你要排序的是字符串数组也可以像这样排序。例如: var numbers = ['3','342','23','22','124']; numbers.sort(function(a,b){return b.length - a.length}); 这样就会按照长度来排序了,这个函数就是排序时的回调函数

互换的青春

为了正确对数组进行排序,必须为sort()方法定义一个比较函数 对传入的一对值进行比较,让后返回3个值的任何一个:小于0.等于0,或者大于0. 当函数的返回值小于0的时候,可知道第二个值大于第一个值,因此第二个值排序靠后, 当函数的返回值大于0的时候,可以知道第一个值大于第二个值,第一个值靠后, 当等于0的时候,就不必排序了,这两个值是相等的 numbers.sort(function(a,b){return b - a});是降序排列,return a-b是升序排列;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript