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;
});