1. 程式人生 > >JavaScript中的sort排序及字典序陷阱的解決方法

JavaScript中的sort排序及字典序陷阱的解決方法

在JavaScript中,陣列排序我們可以直接利用sort方法進行排序

排序字串

var Fruits = ["Banana", "Orange", "Apple", "Mango"];
Fruits.sort();

排序結果為[ “Apple”, “Banana”,”Mango”, “Orange”]

排序的方式為字典序(alphanumeric),即根據陣列內元素首字母進行排序,此方法排序會改變原陣列的順序。

在元素為數字的陣列中,sort方法依然會根據字典序(alphanumeric)進行排序。

排序數字(字母序)

var Num = ["1", "2"
, "3", "10"]; Num.sort();

排序結果為[“1”, “10”, “2”, “3”]

如果需要根據數字大小進行排序,則需將程式碼更改為

num.sort((a, b) => a - b)//從小到大

或者

 [1,2,5,10].sort(function(a,b){return a-b;})//從小到大

排序結果為[“1”, “2”, “3”, “10”]

這裡函式內執行的是氣泡排序。通過返回值的正負判斷相鄰兩個元素是否交換位置
若需從大至小排序,則需將返回值改為b-a。