位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 數(shù)組排序

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-25

■知識(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;

}


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部