javascript中的排序sort()函數

sort()函數會自動調動toString()方法字符串會數組參數,因此sort()方法能夠接收一個比較函數作爲參數。數組

比較函數接收兩個參數,若是第一個參數應該在第二個參數前面則返回負數,若是兩個參數相等則返回0,若是第二個參數位於第一個參數前面則返回正數。如下是一個簡單地比較函數:ide

 

  
  
           
  
  
  1. function compare(value1, value2) {  
  2.     if(value1 < value2) {  
  3.         return -1;  
  4.     } else if(value1 == value2) {  
  5.         return 0;  
  6.     } else {  
  7.         return 1;  
  8.     }  

 

  
  
           
  
  
  1. var arr = new Array(1,2,78,34,54,0,4);  
  2. arr.sort(compare);  
  3. alert(arr);//按從小到大排序 

對於數值類型或者其valueOf()方法會返回數值類型的對象類型,能夠使用一個更簡單地比較函數。這個函數只要用第一個值減去第二個值便可。函數

 

  
  
           
  
  
  1. function compare(value1, value2) {  
  2.     return value1 - value2;  

因爲比較函數經過返回一個小於零、等於零或大於零的值來影響排序結果,所以減法操做就能夠適當的處理全部這些狀況。spa

相關文章
相關標籤/搜索