今天學習JavaScript數組中已經存在的兩個重排序方法:
(1)reverse()(2)sort()
讓我們先看一下這兩個方法的名字,英語好的小朋友大概已經知道
第一個方法的作用了吧,沒錯,這個方法會反轉數組項的順序。
而第二個方法在沒有參數傳進來的時候,會默認調用數組中
每一項的toString()轉型方法,然後比較得到的字符串,以確定如何排序。
具體用法看下面的代碼。
<script type="text/javascript">
//reverse()方法
var values = [1, 2, 3, 4, 5, 6];
values.reverse();
//可以看到輸出的結果是6, 5, 4, 3, 2, 1
alert(values);
//sort()方法
var arrayOne = [1, 20, 15, 5];
arrayOne.sort();
/*輸出的結果是1, 15, 20, 5
因爲sort()方法在沒有參數傳遞進來的時候
會默認的調用數組每一項的toString()方法
所以會出現上面的結果*/
alert(arrayOne);
/*現在我們來定義一個比較函數compare()
比較函數接受兩個參數,如果第一個參數應該
位於第二個參數之後則返回一個負數;如果兩個參數
相等,則返回零;如果第一個參數應該位於第二個參數之前,
則返回一個正數。*/
function compareOne(value1, value2){
if(value1 < value2){
return -1;
}
else if(value1 > value2){
return 1;
}
else{
return 0;
}
}
/* 然後我們把這個函數作爲一個參數傳遞給sort()方法
看一下比較的結果*/
var arrayTwo = [15, 5, 20, 1];
arrayTwo.sort(compareOne);
//可以看到輸出的結果是1, 5, 15, 20
alert(arrayTwo);
/*對於數值類型,或者其valueOf()方法會返回數值類型的對象,
可以使用一個更簡單的比較函數,如下所示。*/
function compareTwo(value1, value2){
return value1 - value2;
}
</script>