JavaScript中數組排序的方法有兩個reverse()和sort()。 reverse()方法會反轉數組項的順序: sort()方法會按照字元串升序排列數組項,sort()方法會調用每個數組項的tostring()方法,即使數組中的每一項都是數值,sort()方法比較的也是字元串: 這種方式在 ...
JavaScript中數組排序的方法有兩個reverse()和sort()。
reverse()方法會反轉數組項的順序:
1 var arr = [1,2,3,4,5]; 2 arr.reverse(); 3 alert(arr); //5,4,3,2,1
sort()方法會按照字元串升序排列數組項,sort()方法會調用每個數組項的tostring()方法,即使數組中的每一項都是數值,sort()方法比較的也是字元串:
1 var arr = [1,2,11,15,5]; 2 arr.sort(); 3 alert(arr); // 1,11,15,2,5
這種方式在很多情況下並不是最好的方案,因此sort()方法可以接收一個比較函數作為參數。比較函數需要兩個參數,如果第一個參數應該位於第二個參數之前則需要返回一個負數,如果兩個參數相等則返回0,如果第一個參數應該位於第二個參數之後,則返回一個正數:
1 var arr = [1,2,11,15,5]; 2 arr.sort(function(val1,val2){ 3 return val1-val2; 4 }); 5 alert(arr); // 1,2,5,11,15
由於比較函數通過返回一個小於零,等於零或大於零的志來影響排序結果,因此減法操作可以很好的處理這些情況。