天天看點

js中的數組排序函數sort()和reverse()

對清單進行排序一般都由背景來完成,但如果清單項不多無需分布的話也可以用js完成,要使用js排序自然也就想到sort()方法和reverse()方法,這兩函數在js中使用得比較多大家也許比較熟悉,但對于剛接觸這兩函數的初學者還是需要注意幾點。

sort() 方法用于對數組的元素進行正序排列

reverse();方法用于對數組的元素進行倒序排列,這個沒有什麼可說的,所謂倒序就是大的在前面,小的在後面

例:

對數組[0,1,5,10,15]進行正序和倒序排列 傳回結果并不是我們想要的,

原因:預設情況下在使用sort()對數組進行排序的時候會調用tostring()函數将數組元素轉換成字元串再進行比較,是按ascii進行比較的。

如下是W3C中對sort()方法的說明:

js中的數組排序函數sort()和reverse()

不難了解:1的ascii值肯定要比5的ascii值小,由于是正序那麼越小的就越在前面!! 那怎樣才能使其按數字大小排序呢。這個時候,就可以使用sort()中的參數了,

sort() 方法可以接受一個 方法為參數

,這個方法有兩個參數。分别代表每次排序比較時的兩個數組元素。sort()排序時每次比較兩個數組元素都會執行這個參數,并把兩個比較的數組元素作為參數傳遞

給這個函數。當函數傳回值大于0時就交換兩個數組元素的順序,否則就不交換。

reverse()與sort()使用方法相同就不贅述了

示例:

基礎知識說完了,回到正題:對清單進行排序,實作思想是一樣的就不多說了,直接上代碼:

示範代碼:

js中的數組排序函數sort()和reverse()
js中的數組排序函數sort()和reverse()

view code

js中的數組排序函數sort()和reverse()