5 回答

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

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

TA贡献1797条经验 获得超6个赞
为了正确对数组进行排序,必须为sort()方法定义一个比较函数
对传入的一对值进行比较,让后返回3个值的任何一个:小于0.等于0,或者大于0.
当函数的返回值小于0的时候,可知道第二个值大于第一个值,因此第二个值排序靠后,
当函数的返回值大于0的时候,可以知道第一个值大于第二个值,第一个值靠后,
当等于0的时候,就不必排序了,这两个值是相等的
numbers.sort(function(a,b){return b - a});是降序排列,return a-b是升序排列;
添加回答
举报