JavaScript學習:JavaScript數組排序

一、sort()方法最強大的數組方法之一
sort()方法以字母順序對數組進行排序。
例:
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.sort(); // 對 fruits 中的元素進行排序,按字母順序排序:Apple,Banana,Mango,Orange
二、reverse()方法反轉數組,可以使用它以降序對數組進行排序
例:
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.sort(); // 對 fruits 中的元素進行排序
fruits.reverse(); // 反轉元素順序 Orange,Mango,Banana,Apple
三、數字排序 sort()方法適合字符串排序(根據字母順序排序),對於數字排序,會根據數字的第一個數來排序,例如:25會大於100,一個會產生不正確的結果,需要通過一個比值函數來修正問題。
例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});//a-b 1,5,10,25,40,100
降序例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a}); //b-a 100,40,25,10,5,1
四、比值函數另一種排序順序,排序數字。比較函數應該返回一個負,零或正值,這取決於參數
function(a, b){return a-b}
當 sort() 函數比較兩個值時,會將值發送到比較函數,並根據所返回的值(負、零或正值)對這些值進行排序。
例:
當比較 40 和 100 時,sort() 方法會調用比較函數 function(40,100)。
該函數計算 40-100,然後返回 -60(負值)。
排序函數將把 40 排序爲比 100 更低的值。
五、隨機順序排序數組
例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()});//得到的排序會隨機變化,多點幾次測試。
Math.random():產生一個[0,1)之間的隨機數。
Math.random()*0.5產生一個[0,0.5)之間的隨機數。
0.5+Math.random()*0.5產生一個[0.5,1)之間的隨機數。
六、查找最高數組值(最低數組值)
例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
// 現在 points[0] 包含最低值
// 而 points[points.length-1] 包含最高值
*降序排序查找最高最低,則用b-a
如果僅需要找最高最低值,不需要排序,則可以使用Math.max()、Math.min() :Math.max.apply([1, 2, 3]) 等於 Math.max(1, 2, 3) 同樣:Math.min.apply([1, 2, 3]) 等於 Math.min(1, 2, 3)。
七、排序對象數組
例:
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});
W3School JavaScript

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章