JS陣列排序

2021-08-31 23:08:44 字數 982 閱讀 3226

用陣列的排序:sort()方法. 但sort()方法本身是按ascii字元**從小到大排列的.所以說,如果是數字的話,會出現下面這種情況:

var arr = [3, 32, 3, 5];

arr.sort();

alert(arr.tostring());//輸出:2,3,32,5

但是: sort()方法可以接收乙個引數,就是乙個比較函式;也就是說,可以自己寫個比較函式;這樣的話,不管要排序的陣列裡的值是什麼型別的,都可以排序,前提是自己寫的方法夠好.如下:

function compare(str1, str2)else

}

此函式和不傳遞引數時的功能一樣.都是從小到大排列,而且是按字串來比較的.但如果想要從大到小排列,只需要把返回-1 和 1 的判斷換一下就ok了.但兩者相等的時候必須是返回0;比較函式的兩個引數是不用我們寫的,sort()會自動在比較的時候傳進去.

上面的判斷其實和string類的localcompare()方法是一樣的.所以可以直接寫成這樣:

function compare(str1, str2)

上面的例子.給數字排序:可以自己寫個函式,按數字來比較:

function compareint(int1, int2)else

}

這時候:

var arr = [3, 32, 2, 5];

arr.sort(compareint);

alert(arr.tostring());//輸出:2,3,5,32

reverse()方法:

此方法用來將陣列中元素的順序倒轉;所以:如果一陣列已經按公升序排好,只需要對陣列執行:reverse() .就可以變成降序.上例:arr.reverse();alert(arr.tostring());//輸出:32,5,3,2

JS陣列排序

function bubblesort array return array vararray1 2,5,1,9 bubblesort array1 1,2,5,9 function usesort array var array1 2,5,1,9 usesort array1 在資料集中,選擇乙個...

js 陣列排序

var array 1,4,8,3,6,12,9,8 function compare val1,val2 array.sort compare document.write array sort 方法按照公升序排列陣列項,會呼叫每個陣列項的tostring 轉型方法,然後比較得到的字串。tostr...

JS陣列排序

js陣列排序方法有兩個 reverse 和sort 其中reverse 可將陣列進行倒序,而sort 則可將陣列項靈活地進行公升序或降序排列。var arr 8,4,9,1 console.log arr.reverse 1,9,4,8 console.log arr 1,9,4,8 可以看出,re...