數(shù)組中已經(jīng)存在的兩個(gè)可以直接用來(lái)重排序的方法:sort() 和 reverse()。
reverse()
會(huì)反轉(zhuǎn)數(shù)組順序
var values = [0,1,2,3,4,5];
values.reverse();
alert(values); //5,4,3,2,1,0
但是會(huì)受數(shù)據(jù)以影響不夠靈活;
sort()
默認(rèn)按升序排列數(shù)組項(xiàng);
sort()方法會(huì)電泳每個(gè)數(shù)組項(xiàng)的toString()方法,然后比較得到的字符串,以確定如何排序。
var values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5
即使例子中值得順序沒(méi)問(wèn)題,但sort()方法會(huì)根據(jù)測(cè)試字符串的結(jié)果改變?cè)瓉?lái)的順序,雖然數(shù)值5小于數(shù)值10,但在字符串比較式,"10"則位于"5"之前。解決方法
function compare(value1, value2){
if(value1 < value2){
return -1
}else if(value > value2){
return 1
}else{
return 0
}
}
這個(gè)例子適用于大多數(shù)數(shù)據(jù)類型
var values = [0,1,5,10,15];
values.sort(compare);
alert(values); //0,1,5,10,15