JavaScript sort()
此方法實現對陣列元素的排序功能。
注:此方法是對原陣列的操作,並沒有生成新的陣列。
更多關於陣列內容可以參閱JavaScript Array 陣列一章節。
語法結構:
[JavaScript] 純文字檢視 複製程式碼array.sort(sortby)
引數解析:
sortby:可選,規定排序規則的一個函式。
瀏覽器相容:
(1).IE瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).火狐瀏覽器支援此方法。
(5).opera瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var arr=new Array(1,2,3,4,5,6,7,8,9,10); console.log(arr.sort());
以上程式碼實現了排序功能,貌似是由小到大排序,但是並非如此。
彈出的結果是:
[HTML] 純文字檢視 複製程式碼1,10,2,3,4,5,6,7,8,9
實際上排序比較的並非是數值的大小,此函式的比較原則如下:
如果此方法沒有引數,那就會將陣列中的元素嘗試轉換成字串,然後比較字串中每個字元的ASCII碼的大小,較小的的字串在前面。
特別說明:字串比較ASCII碼的方式是首先比較首字元的ASCII碼,如果能夠區分出大小則停止比較,如果相等則繼續比較下一個字元,依次類推。
[JavaScript] 純文字檢視 複製程式碼執行程式碼var a=["a","b","c","d"]; a.sort(); console.log(a);
輸出結果:a,b,c,d 。
a、b、c、d的ASCII碼值分別是:97、98、99、100。
[JavaScript] 純文字檢視 複製程式碼執行程式碼var a=["a","B","c","d"]; a.sort(); console.log(a);
輸出結果:B,a,c,d 。
大寫字母B的的ASCII碼值是65,所以它排在第一位。
[JavaScript] 純文字檢視 複製程式碼執行程式碼var a=["abc","abd","c","d"]; a.sort(); console.log(a);
輸出結果:abc,abd,c,d 。
當第一個字母的ASCII無法比較出結果時,再比較第二個ASCII碼的大小。
函式帶有引數的時候:
sort()函式可以有一個引數,但是此引數必須是一個函式,並且此引數是可選的。
此引數可以規定排序規則,下面就簡單介紹一下帶有引數情況下,此函式的用法:
作為引數函式一般會有兩個引數,用於傳遞陣列中的元素,並用於排序規則操作,如果返回值大於零,則兩個值互換,否則不互換。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function compare(a,b){ if(a<b){ return 1; } } var myArra=new Array(10,2,3,4,5,6,7,8,9,1); console.log(myArra.sort(compare));
輸出結果:10,9,8,7,6,5,4,3,2,1。
其實引數函式的兩個引數不是必須的,看以下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function compare(){ return 0.5-Math.random(); } var arr=[0,1,2,3,4,5,6,7,8,9]; arr.sort(compare) console.log(arr);
以上程式碼可以隨機打亂陣列元素原有元素的順序。
但是引數函式並沒有引數,實際上並不影響陣列元素的比較。
相關文章
- Algorithm in Javascript Bubble SortGoJavaScript
- Algorithm in Javascript Bucket SortGoJavaScript
- javascript的sort()函式用法詳解JavaScript函式
- javascript sort方法容易犯錯的地方JavaScript
- JavaScript 中陣列 sort() 方法的基本使用JavaScript陣列
- JavaScript object array sort by string bug All In OneJavaScriptObject
- Javascript陣列排序sort方法和自定義排序方法JavaScript陣列排序
- JavaScript中陣列Array.sort()排序方法詳解JavaScript陣列排序
- SORT (UNIQUE STOPKEY)/ SORT GROUP BY STOPKEYTopK
- JavaScript 使用sort()方法從數值上對陣列進行排序JavaScript陣列排序
- 排序sort排序
- sort命令
- topo sort
- Queue Sort
- sort排序排序
- 線性時間的排序 - Decision Tree Model & Counting Sort & Radix Sort & Bucket Sort排序
- golang sort.Sort () 排序演算法學習Golang排序演算法
- 關於stable_sort()和sort()的區別:
- sort_area_retained_size與sort_area_sizeAI
- Sort Array By Parity
- Oracle Sort JoinOracle
- sort 命令使用
- sort()函式函式
- _sort_elimination_cost_radit和sort排序排序
- Collections sort()排序方法排序
- 堆排序 Heap Sort排序
- Elasticsearch script sort 排序Elasticsearch排序
- Java Arrays.sort()Java
- 桶排序bucket sort排序
- 聊聊sort函式函式
- 快速排序(Quick Sort)排序UI
- 【Shell】sort 筆記筆記
- Linux sort命令Linux
- 希爾排序(Shell Sort)排序
- 快速排序 (Quick Sort)排序UI
- Linux shell工具grep awk cut sort uniq sort 使用小結Linux
- Leetcode Sort ColorsLeetCode
- Leetcode Sort ArrayLeetCode