天天看點

JS排序對象數組

sort()定義比較函數的目的是定義另一種排序順序。比較函數應該傳回一個負,零或正值,這取決于參數。

​sort()​

​方法是最強大的數組方法之一。

比較函數

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

比較函數應該傳回一個負,零或正值,這取決于參數:

function(a, b){return a-b}      

當​

​sort()​

​函數比較兩個值時,會将值發送到比較函數,并根據所傳回的值(負、零或正值)對這些值進行排序。

排序對象數組

JavaScript 數組經常會包含對象

​比較數值屬性​

​:

var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}];      

即使對象擁有不同資料類型的屬性,sort() 方法仍可用于對數組進行排序。

解決方法是通過比較函數來對比屬性值:

cars.sort(function(a, b){return a.year - b.year});      

​比較字元串屬性​

​會稍複雜:

cars.sort(function(a, b){
    var x = a.type.toLowerCase();
    var y = b.type.toLowerCase();
    if (x < y) {return -1;}
    if (x > y) {return 1;}
    return 0;
});