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是升序排列;
添加回答
舉報