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