JavaScript 數(shù)組排序
■知識(shí)點(diǎn)
使用reverse()方法能夠顛倒數(shù)組元素的順序。
使用sort()方法能夠根據(jù)一定條件對(duì)數(shù)組元素進(jìn)行排序。如果調(diào)用Sort()方法時(shí)沒有傳遞參數(shù),則按字母順序?qū)?shù)組中的元素進(jìn)行排序。
■實(shí)例設(shè)計(jì)
【示例1】在下面的示例中,將根據(jù)排序函數(shù)比較數(shù)組中每個(gè)元素的大小,并按從小到大的順序執(zhí)行排序。
function f( a, b ){ //排序函數(shù)
return ( a - b ) //返回比較參數(shù)
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9]; //定義數(shù)組
a.sort(f); //根據(jù)數(shù)字大小由小到大進(jìn)行排序
console.log( a ); //返回?cái)?shù)組[0,1,2, 3, 4,5, 6, 7,8,9]
如果按從大到小的順序執(zhí)行排序,則可以讓返回值取反。
function f ( a, b ) { //排序函數(shù)
return -( a - b ) //取反并返回比較參數(shù)
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9]; //定義數(shù)組
a.sort (f) ; //根據(jù)數(shù)字大小由大到小進(jìn)行排序
console.log ( a ); //返回?cái)?shù)組[ 9, 8,7,6, 5, 4,3,2,1,0]
【示例2】根據(jù)奇偶性質(zhì)排列數(shù)組。
SOrt()的用法比較靈活,主要是排序函數(shù)比較。例如,如果根據(jù)奇偶數(shù)順序排列數(shù)組,只需要判斷排序函數(shù)中兩個(gè)參數(shù)的奇偶性,并決定排列順序即可。
function f( a, b ){ //排序函數(shù)
var a = a % 2; //獲取參數(shù)a的奇偶性
var b = b % 2; //獲取參數(shù)b的奇偶性
if ( a == 0 ) return 1; //如果參數(shù)a為偶數(shù),則排在左邊
if( b == 0 ) return -1; //如果參數(shù)b為偶數(shù),則排在右邊
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9]; //定義數(shù)組
a.sort( f ); //根據(jù)數(shù)字大小由大到小進(jìn)行排序
console.log( a ); //返回?cái)?shù)組[3,1,5,7,9,0,8,6,4,2]
sort()方法在調(diào)用排序函數(shù)時(shí),將每個(gè)元素值傳遞給排序函數(shù),如果元素值為偶數(shù),則保留其位置不動(dòng);如果元素值為奇數(shù),則調(diào)換參數(shù)a和b的顯示順序,從而實(shí)現(xiàn)對(duì)數(shù)組中所有元素執(zhí)行奇偶排序。如果希望偶數(shù)排在前面,奇數(shù)排在后面,只需要取返回值即可。排序函數(shù)如下:
function f( a, b ){
var a = a % 2;
var b = b % 2;
if( a == 0 ) return -1;
if( b == 0 ) return 1;
}
點(diǎn)擊加載更多評(píng)論>>