javascript sort()對(duì)數(shù)組中的元素進(jìn)行排序詳解
javascript sort()可以對(duì)數(shù)組中的元素進(jìn)行排序,
語(yǔ)法格式:arrayObject.sort(sortby)
arrayObject是數(shù)組對(duì)象,sortby為可選項(xiàng),用來(lái)確定元素順序的函數(shù)的名稱,如果這個(gè)參數(shù)被省略,那么元素將按照ASCII字符順序進(jìn)行升序排列。
在沒(méi)有使用比較函數(shù)進(jìn)行排序時(shí),sort方法是按字符的ASCII值進(jìn)行排序的,先從第一個(gè)字符比較,如果第一個(gè)字符相等,再比較第二個(gè)字符,以此類推。
對(duì)于數(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>對(duì)數(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("沒(méi)有使用比較函數(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í)例代碼大家可以測(cè)試下,感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
JS基于HTML5的canvas標(biāo)簽實(shí)現(xiàn)炫目的色相球動(dòng)畫效果實(shí)例
這篇文章主要介紹了JS基于HTML5的canvas標(biāo)簽實(shí)現(xiàn)色相球效果,結(jié)合實(shí)例形式分析了基于canvas標(biāo)簽實(shí)現(xiàn)圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
純javascript實(shí)現(xiàn)選擇框的全選與反選功能
這篇文章主要介紹了純javascript實(shí)現(xiàn)選擇框的全選與反選 ,需要的朋友可以參考下2019-04-04
JavaScript之移動(dòng)端H5生成圖片解決方案講解
這篇文章主要介紹了JavaScript之移動(dòng)端H5生成圖片解決方案講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
JS實(shí)現(xiàn)即點(diǎn)即編輯功能代碼
以前在網(wǎng)上都看到過(guò)類似的功能,不過(guò)沒(méi)自己想要實(shí)現(xiàn)過(guò),這次剛好做靜態(tài)頁(yè)面中有這樣的一個(gè)需求,就試著自己做做看,做完發(fā)現(xiàn)也不是什么很難的事情。2008-10-10
webpack-dev-server 的 host 配置 0.0.0.0的方法
這篇文章主要介紹了webpack-dev-server 的 host 配置 0.0.0.0的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,,需要的朋友可以參考下2024-01-01
有一段有意思的代碼-javascript現(xiàn)實(shí)多行信息
有一段有意思的代碼-javascript現(xiàn)實(shí)多行信息...2007-08-08
JavaScript?中從?URL?獲取數(shù)據(jù)的方法
這篇文章主要介紹了在?JavaScript?中從?URL?獲取數(shù)據(jù),我們使用了open函數(shù),將請(qǐng)求方法類型和URL作為參數(shù)傳遞,并調(diào)用XMLHttpRequest()的send()方法,結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
JavaScript錯(cuò)誤處理超完整實(shí)用指南
在JavaScript中進(jìn)行錯(cuò)誤處理,最常見的方式就是使用try catch語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于JavaScript錯(cuò)誤處理的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11

