javascript sort()對數(shù)組中的元素進(jìn)行排序詳解
javascript sort()可以對數(shù)組中的元素進(jìn)行排序,
語法格式:arrayObject.sort(sortby)
arrayObject是數(shù)組對象,sortby為可選項(xiàng),用來確定元素順序的函數(shù)的名稱,如果這個(gè)參數(shù)被省略,那么元素將按照ASCII字符順序進(jìn)行升序排列。
在沒有使用比較函數(shù)進(jìn)行排序時(shí),sort方法是按字符的ASCII值進(jìn)行排序的,先從第一個(gè)字符比較,如果第一個(gè)字符相等,再比較第二個(gè)字符,以此類推。
對于數(shù)值型數(shù)據(jù),如果按照字符比較,得到的結(jié)果可能并不是我們想要的,因此需要借助比較函數(shù)。比較函數(shù)有兩個(gè)參數(shù),分別代表每次排序時(shí)的兩個(gè)數(shù)組項(xiàng)。sort()排序時(shí)每次比較兩個(gè)數(shù)組項(xiàng)都會(huì)執(zhí)行這個(gè)參數(shù),并把兩個(gè)比較的數(shù)組項(xiàng)做為參數(shù)傳遞給這個(gè)函數(shù)。當(dāng)函數(shù)返回值大于0時(shí)就交換兩個(gè)數(shù)組的順序,否則就不交換,即函數(shù)返回值小于0,表示升序排列,函數(shù)返回值大于0,表示降序排列。
<!DOCTYPE html> <html> <head> <title>對數(shù)組中的元素進(jìn)行排序</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript"> var x = new Array(1,20,8,12,6,7); //創(chuàng)建數(shù)組 document.write("排序前數(shù)組:"+x.join(",")+"<p>"); //輸出數(shù)組元素 x.sort(); //按字符升序排列數(shù)組 document.write("沒有使用比較函數(shù)排序后數(shù)組:"+x.join(",")+"<p>"); //輸出排序后數(shù)組 x.sort(asc); //有比較函數(shù)的升序排列 /*升序比較函數(shù)*/ function asc(a,b){ return a-b; } document.write("排序升序后數(shù)組:"+x.join(",")+"<p>"); //輸出排序后的數(shù)組 x.sort(des); //有比較函數(shù)的降序排列 /*降序比較函數(shù)*/ function des(a,b){ return b-a; } document.write("排序降序后數(shù)組:"+x.join(",")); //輸出排序后數(shù)組 </script> </head> <body> </body> </html>
以上實(shí)例代碼大家可以測試下,感謝大家的學(xué)習(xí)和對腳本之家的支持。
相關(guān)文章
JavaScript中判斷變量是數(shù)組、函數(shù)或是對象類型的方法
這篇文章主要介紹了JavaScript中判斷變量是數(shù)組、函數(shù)或是對象類型的方法,需要的朋友可以參考下2015-02-02javascript實(shí)現(xiàn)貪吃蛇游戲(娛樂版)
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08Egg.js 中 AJax 上傳文件獲取參數(shù)的方法
這篇文章主要介紹了Egg.js 中 AJax 上傳文件獲取參數(shù),需要的朋友可以參考下2018-10-10Selenium執(zhí)行JavaScript腳本的方法示例
這篇文章主要介紹了Selenium執(zhí)行JavaScript腳本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12JavaScript 中如何實(shí)現(xiàn)并發(fā)控制
在日常開發(fā)過程中,你可能會(huì)遇到并發(fā)控制的場景,比如控制請求并發(fā)數(shù)。那么在 JavaScript 中如何實(shí)現(xiàn)并發(fā)控制呢?在回答這個(gè)問題之前,我們來簡單介紹一下并發(fā)控制。2021-05-05JavaScript實(shí)現(xiàn)時(shí)鐘特效
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)時(shí)鐘特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06