js中的sort方法

2022-03-28 17:56:17 字數 1164 閱讀 1366

js中原生的sort()採用快排和插入排序演算法,根據比較器對陣列排序。

預設是將陣列元素轉為字串,然後根據unicode字符集編號的大小排序。

charcodeat(index) 返回指定位置字元的 unicode 編號,取值是 0 - 65535 間的整數,與 charat() 方法執行的操作相似,後者返回的是單個字元。

如果不提供比較器而對數字組成的陣列排序,因為會將數字轉為字串再按編號排序而導致錯誤。要獲得正確的順序,只需提供比較器函式:function(a,b)即可。

兩個字串之間不可以加減運算,但可以比大小,js會依次比編號的大小,如"

'a'>'a'    //

為true,因為 "a".charcodeat(0)-->97, a-->65

"ac">"ab" //為true

按拼音順序排序:

//

按本地語言的順序排序。中英混合時,中文在前英文在後,再分別按拼音順序排。

function (a, b)

按指定的順序排序:

//

按指定的特定順序排序,相同時再按enu2的順序排

//利用規則的索引做排序依據

var enu1=['d','e','c','b','a','a0','a00'];

var enu2=['nb','hb','suv','mpv','sw','roadster/coupe/convertible','-',''];

var tosort= ["a00 hb", "a hb", "a0 suv", "a0 suv", "a suv", "e suv","d nb","a0 hb", "a suv", "e mpv", "a nb", "c nb", "c hb", "a mpv", "b nb", "a0 nb", "a0 nb"];

tosort.sort(

function

(a,b)

});//["d nb", "e suv", "e mpv", "c nb", "c hb", "b nb", "a nb", "a hb", "a suv", "a suv", "a mpv", "a0 nb", "a0 nb", "a0 hb", "a0 suv", "a0 suv", "a00 hb"]

js中的sort方法

js中原生的sort 採用快排和插入排序演算法,根據比較器對陣列排序。預設是將陣列元素轉為字串,然後根據unicode字符集編號的大小排序。charcodeat index 返回指定位置字元的 unicode 編號,取值是 0 65535 間的整數,與 charat 方法執行的操作相似,後者返回的是...

JS中sort()方法的理解

在js中的sort 方法,如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更準確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串 如有必要 以便進行比較。而且。arry.sort 預設是公升序排序。js中sort 方法要使用其他標準進行排序的話,則...

JS中sort 方法原理及使用

sort 方法用於對陣列的元素進行排序,並返回陣列。預設排序順序是根據字串unicode碼。因為排序是按照字串unicode碼的順序進行排序的,所以首先應該把陣列元素都轉化成字串 如有必要 以便進行比較。語法 arrayobject.sort sortby 引數sortby 可選,用來規定排序的順序...