首頁 >web前端 >js教程 >js中sortNumber函數如何進行陣列的排序?

js中sortNumber函數如何進行陣列的排序?

不言
不言原創
2018-08-14 16:43:113994瀏覽

這篇文章帶給大家的內容是關於js中sortNumber函數如何進行陣列的排序?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

JS中有sort方法實作排序,但是單純的用sort方法還不行,實作數值的排序也需要使用一個叫sortNumber函數。

例如:我用sort方法示範一遍它的不足(只列出關鍵程式碼):

var arr = new Array(99,66,888,694898,116,46,41);
document.write("排序前:" +arr);
document.write("<br/>")
document.write("排序后:" +arr.sort());

結果:

使用sortNumber方法(只列出關鍵程式碼):

 function sortNumber(a,b)
    {
        return a - b;
    }
    var arr = new Array(99,66,888,694898,116,46,41);
    document.write("排序前:" +arr);
    document.write("<br/>")
    document.write("排序后:" +arr.sort(sortNumber));

結果:

解釋原因:

sort排序方法:
它並沒有按照數值的大小對數字進行排序。
sortNumber排序函數:
如果呼叫方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。
要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然後傳回一個用來說明這兩個值的相對順序的數字。
比較函數應該有兩個參數 a 和 b,其傳回值如下:
   若 a 小於 b,在排序後的陣列中 a 應該會出現在 b 之前,則傳回一個小於 0 的值。
   若 a 等於 b,則回傳 0。
   若 a 大於 b,則回傳一個大於 0 的值。

 相關推薦:

js封裝_new函數以及實作new關鍵字的方法(附程式碼測試)

js基本語法的介紹:資料型別以及變數型別

 js常用的正規表示式的用法小結

#

以上是js中sortNumber函數如何進行陣列的排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn