Arrays Sorting
一、array.sort()
用來將陣列裡的元素按照字母順序由小到大排列。
var person = ["ca", "az", "bb", "ba"]; console.log(person.sort());
其結果為
二、array.reverse()
用來將陣列裡的順序反轉過來,注意,這跟 array.sort() 並不相似。
var person = [1, 2, 3, 4]; console.log(person.reverse());
其結果為
三、數字排序問題 array.sort(function (a, b) { return a - b; })
如果想要將一陣列裡的數字由小到大排列
var person = [40, 100, 1, 5, 25, 10]; console.log(person.sort());
其結果為
說明:
如果陣列是以數字元素組成的,則使用 array.sort() 會失靈,
應該改採用「array.sort(function (a, b) { return a - b; })」方式來做
var person = [40, 100, 1, 5, 25, 10]; console.log(person.sort(function (a, b) { return a - b; }));
其結果為
說明:
sort() 裡的 function(a,b) 像是遞迴兩兩比較,當 { return a - b; } 時,
則表示是由小排到大;反之,當 { return b - a; } 時,則表示是由大排到小。
四、Sorting Object Arrays
var cars = [ { type: "Volvo", year: 2016 }, { type: "Saab", year: 2001 }, { type: "BMW", year: 2010 } ]; console.log(cars.sort(function (a, b) { return a.year - b.year; }));
其結果為
說明:
由「array.sort(function (a, b) { return a - b; })」可知,
array.sort() 方法可做到客製化排序,
如上例,可以做到間接對物件排序。