您好,登錄后才能下訂單哦!
JavaScript中sort排序的原理是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
sort()方法用于對數(shù)組的元素進(jìn)行排序,并返回數(shù)組。默認(rèn)排序順序是根據(jù)字符串Unicode碼點(diǎn)。
sort排序原理
語法:arrayObject.sort(sortby);參數(shù)sortby可選。規(guī)定排序順序。必須是函數(shù)。
注:如果調(diào)用該方法時沒有使用參數(shù),將按字母順序?qū)?shù)組中的元素進(jìn)行排序,說得更精確點(diǎn),是按照字符編碼的順序進(jìn)行排序。要實(shí)現(xiàn)這一點(diǎn),首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進(jìn)行比較。
如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個參數(shù)a和b,其返回值如下:
若a小于b,在排序后的數(shù)組中a應(yīng)該出現(xiàn)在b之前,則返回一個小于0的值。
若a等于b,則返回0。
若a大于b,則返回一個大于0的值。
sort排序方法
例1:我們將創(chuàng)建一個數(shù)組,并按字母順序進(jìn)行排序:
<scripttype="text/javascript">
vararr=newArray(6)
arr[0]="George"
arr[1]="John"
arr[2]="Thomas"
arr[3]="James"
arr[4]="Adrew"
arr[5]="Martin"
document.write(arr+"<br/>")
document.write(arr.sort())
</script>
輸出:
George,John,Thomas,James,Adrew,Martin
Adrew,George,James,John,Martin,Thomas
例2:我們將創(chuàng)建一個數(shù)組,并按字母順序進(jìn)行排序:
<scripttype="text/javascript">
vararr=newArray(6)
arr[0]="10"
arr[1]="5"
arr[2]="40"
arr[3]="25"
arr[4]="1000"
arr[5]="1"
document.write(arr+"<br/>")
document.write(arr.sort())
</script>
輸出:
10,5,40,25,1000,1
1,10,1000,25,40,5
請注意,上面的代碼沒有按照數(shù)值的大小對數(shù)字進(jìn)行排序,要實(shí)現(xiàn)這一點(diǎn),就必須使用一個排序函數(shù):
<scripttype="text/javascript">
functionsortNumber(a,b)
{
returna-b
}
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。