JavaScript數組排序sort()方法


var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();            // 對 fruits 中的元素進行排序

默認地,sort() 函數根據字符串Unicode碼。

該函數很適合字符串("Apple" 會排在 "Banana" 之前)。

不過,如果數字按照字符串來排序,則 "25" 大於 "100",因為 "2" 大於 "1"。

正因如此,sort() 方法在對數值排序時會產生不正確的結果。

 

比較數值可以通過比值函數

比較函數的目的是定義另一種排序順序。

比較函數應該返回一個負,零或正值,這取決於參數

升序排序

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});

降序排序

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});

以隨機順序排序

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()}); 

對復雜數組, 根據數組元素里的某個屬性排序

var sourceList = [{
        bscore: 222,
        name: '哈哈'
    },
    {
        bscore: 34,
        name: '哈哈'
    },
    {
        bscore: 465,
        name: '哈哈'
    },
    {
        bscore: 67,
        name: '哈哈'
    },
    {
        bscore: 243,
        name: '哈哈'
    },
    {
        bscore: 135,
        name: '哈哈'
    }
]
sourceList.sort((a, b) => {
    return a.bscore - b.bscore
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM