陣列排序方法sort()
阿新 • • 發佈:2018-12-17
在預設情況下,sort()方法按升序排序陣列項------即最小的值位於最前面,最大的值排在最後面。為了實現排序,sort()方法會呼叫toString()轉型方法,然後比較得到的字串。也就是說,即使陣列中的每一項都是數值,sort()方法比較的也是字串。
var values = [0,1,5,10,15];
values.sort();
alert(values);//0,1,10,15,5
可見,即使例子中的值的順序沒有問題,但sort()方法也會改變原來的順序; 解決方法:sort()方法可以接收一個比較函式作為引數;
function compare(value1,value2){ if(value1 < value2){ return -1; }else if(value1 > value2){ return 1; }else{ return 0; } } value.sort(compare);
由於比較函式通過返回一個小於零、等於零或大於零的值來影響排序結果,因此減法操作就可以處理所有這些情況; 更簡潔的寫法:
function compare(value1,value2){
return value1 - value2;
}
降序也是同樣的方法,只需交換兩個值的位置; 如果只是想翻轉陣列原來的順序,使用reverse()方法。