JS -- sort()方法實現對象數組的排序

sort()方法會改變原數組,默認按unicode碼順序排列數組

咱們一般遇到的都是數組排序,對於對象數組固然也是能夠的,方法以下:函數

對象數組排序

能夠選擇它的某一屬性進行比較code

var arr = [
            { name:"小明", age:12 },
            { name:"小紅", age:11 },
            { name:"小剛", age:15 },
            { name:"小華", age:13 }
        ];
        
function compare(p){ //這是比較函數
    return function(m,n){
        var a = m[p];
        var b = n[p];
        return a - b; //升序
    }
}
arr.sort(compare("age"));
console.log(arr); 
//結果以下: 
//[{name: "小紅", age: 11}, 
//{name: "小明", age: 12},
//{name: "小華", age: 13}, 
//{name: "小剛", age: 15}]

數組排序

不使用比較函數會出現下面這種狀況,這並非咱們須要的結果對象

var arr = [2,3,13,17,4,19,1];
arr.sort() // 結果:[1, 13, 17, 19, 2, 3, 4]

若想對數組按照大小進行排序,則須要在sort()方法中添加比較函數排序

var arr = [2,3,13,17,4,19,1];
arr.sort(function(a,b){ // 這是比較函數
    return b - a;    // 降序
})
console.log(arr) // 結果:[19, 17, 13, 4, 3, 2, 1]
相關文章
相關標籤/搜索