1. 程式人生 > >陣列排序方法sort()

陣列排序方法sort()

在預設情況下,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()方法。