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() 方法可做到客製化排序,

如上例,可以做到間接對物件排序。