javascript的sort()函式用法詳解
此函式可以用來給陣列中的元素進行排序,下面就通過程式碼例項詳細介紹一下此函式的用法。
首先說明一點,此函式是對陣列本身的操作,不會產生一個副本,程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼var theArray=["螞蟻部落","青島市南區","科技技術"]; console.log(theArray.sort()); console.log(theArray);
以上程式碼的執行結果足以說明這一點,這裡就不多介紹了。
sort()函式的難點在於陣列排序的規則是怎樣的,下面對此分步做一下介紹:
一.函式不用引數的時候:
如果函式沒有引數的時候,比較的陣列元素的unicode字元編碼的大小,大的在後,小的在前,不過裡面還有一些小細節進行介紹。
先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var theArray=["c","a","d","m"]; console.log(theArray.sort());
以上程式碼實現了排序效果,按照unicode大小順序進行的,為了印證這一點,下面是陣列元素的unicode碼的大小:
[JavaScript] 純文字檢視 複製程式碼var theArray=["c","a","d","m"]; for(var i=0;i<theArray.length;i++){ console.log(theArray[i]+"的unicode值是:"+theArray.join("").charCodeAt(i)); }
如果陣列元素並不是單個字元,那它們是如何比較的呢,程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼var theArray=["xc","xa","d","m"]; console.log(theArray.sort());
如果是字串之間比較unicode編碼的時候,是首先比較它們的第一個字元,如果能夠比較出大小,則排序順序就此確定,但是如果像"xc"和"xa"第一個字元無法比較出大小,那麼再比較它們的第二個字元,如果比較出大小,則它們的順序就此確定,否則依次類推繼續比較。
二.帶有引數的時候:
不帶引數的時候是sort()函式預設的排序規則,但是有時候我們需要自定義排序規則,那麼就需要傳遞一個引數。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var theArray=[10,15,8,30,25]; function done(x,y){ return x-y; } console.log(theArray.sort(done));
以上程式碼實現了自定義規則排序,可以將陣列中的元素由小到大進行排列。
sort()函式的引數是一個函式物件,此函式物件具有兩個引數,是陣列中的前後兩個元素。
下面介紹一下規則:
陣列中元素的順序排序取決於函式的返回值,原則如下:
0:元素不保持原來的順序不變。
大於零:元素交換兩者的順序。
小於零:元素不交換兩者的順序。
也就是返回值大於零的時候才會交換兩個元素的順序。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼var theArray=[10,15,8,30,25]; function sortFunction(a,b){ return b-a; } console.log(theArray.sort(sortFunction));
以上程式碼可以實現數字從大到小進行排序。
相關文章
- javascript的replace()函式用法詳解JavaScript函式
- matlab中sort函式的用法Matlab函式
- JavaScript中bind、call、apply函式用法詳解JavaScriptAPP函式
- fcntl函式用法詳解函式
- eval()函式用法詳解函式
- getpid()函式用法詳解函式
- C++ sort排序函式的用法總結C++排序函式
- JavaScript函式模式詳解JavaScript函式模式
- 詳解JavaScript函式模式JavaScript函式模式
- sort()函式函式
- JavaScript函式柯里化詳解JavaScript函式
- JavaScript 節流函式 Throttle 詳解JavaScript函式
- window.open()函式引數用法詳解函式
- Python中enumerate函式用法詳解Python函式
- JavaScript陣列操作函式方法詳解JavaScript陣列函式
- 詳解javascript立即執行函式表示式(IIFE)JavaScript函式
- 聊聊sort函式函式
- Python區域性函式及用法詳解Python函式
- hive 的函式 lateral view 用法詳解 | 附pdf下載Hive函式View
- js的insertRow(),deleteRow(),insertCell(),deleteCell()函式用法詳解JSdelete函式
- javascript function的多種用法詳解JavaScriptFunction
- stl中的sort函式,你真的瞭解嗎函式
- 閉包詳解二:JavaScript中的高階函式JavaScript函式
- JavaScript中常見的字串操作函式及用法JavaScript字串函式
- javascript call()函式用法簡單介紹JavaScript函式
- javascript trim()函式用法簡單介紹JavaScript函式
- 詳細講解SQL中CONVERT轉化函式用法SQL函式
- JavaScript中常見的陣列操作函式及用法JavaScript陣列函式
- JavaScript中陣列Array.sort()排序方法詳解JavaScript陣列排序
- javascript函式全解JavaScript函式
- 排序(對於 sort 函式的使用)排序函式
- 詳解 JavaScript 建構函式和 "new" 操作符JavaScript函式
- JavaScript進階知識點——函式和物件詳解JavaScript函式物件
- Qt5.9中QObject::connect()函式用法(函式使用的前提條件和引數詳解)QTObject函式
- SQL Server資料庫中Substring函式的用法例項詳解SQLServer資料庫函式
- 詳解Python中open()函式指定檔案開啟方式的用法Python函式
- javascript陣列的map()函式用法簡單介紹JavaScript陣列函式
- 尤拉函式詳解函式