sort()函數會自動調動toString()方法字符串會數組參數,因此sort()方法能夠接收一個比較函數作爲參數。數組
比較函數接收兩個參數,若是第一個參數應該在第二個參數前面則返回負數,若是兩個參數相等則返回0,若是第二個參數位於第一個參數前面則返回正數。如下是一個簡單地比較函數:ide
- function compare(value1, value2) {
- if(value1 < value2) {
- return -1;
- } else if(value1 == value2) {
- return 0;
- } else {
- return 1;
- }
- }
- var arr = new Array(1,2,78,34,54,0,4);
- arr.sort(compare);
- alert(arr);//按從小到大排序
對於數值類型或者其valueOf()方法會返回數值類型的對象類型,能夠使用一個更簡單地比較函數。這個函數只要用第一個值減去第二個值便可。函數
- function compare(value1, value2) {
- return value1 - value2;
- }
因爲比較函數經過返回一個小於零、等於零或大於零的值來影響排序結果,所以減法操做就能夠適當的處理全部這些狀況。spa