javascript sort()對數(shù)組中的元素進(jìn)行排序詳解
javascript sort()可以對數(shù)組中的元素進(jìn)行排序,
語法格式:arrayObject.sort(sortby)
arrayObject是數(shù)組對象,sortby為可選項,用來確定元素順序的函數(shù)的名稱,如果這個參數(shù)被省略,那么元素將按照ASCII字符順序進(jìn)行升序排列。
在沒有使用比較函數(shù)進(jìn)行排序時,sort方法是按字符的ASCII值進(jìn)行排序的,先從第一個字符比較,如果第一個字符相等,再比較第二個字符,以此類推。
對于數(shù)值型數(shù)據(jù),如果按照字符比較,得到的結(jié)果可能并不是我們想要的,因此需要借助比較函數(shù)。比較函數(shù)有兩個參數(shù),分別代表每次排序時的兩個數(shù)組項。sort()排序時每次比較兩個數(shù)組項都會執(zhí)行這個參數(shù),并把兩個比較的數(shù)組項做為參數(shù)傳遞給這個函數(shù)。當(dāng)函數(shù)返回值大于0時就交換兩個數(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>
以上實例代碼大家可以測試下,感謝大家的學(xué)習(xí)和對腳本之家的支持。
相關(guān)文章
JS基于HTML5的canvas標(biāo)簽實現(xiàn)炫目的色相球動畫效果實例
這篇文章主要介紹了JS基于HTML5的canvas標(biāo)簽實現(xiàn)色相球效果,結(jié)合實例形式分析了基于canvas標(biāo)簽實現(xiàn)圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
純javascript實現(xiàn)選擇框的全選與反選功能
這篇文章主要介紹了純javascript實現(xiàn)選擇框的全選與反選 ,需要的朋友可以參考下2019-04-04
webpack-dev-server 的 host 配置 0.0.0.0的方法
這篇文章主要介紹了webpack-dev-server 的 host 配置 0.0.0.0的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,,需要的朋友可以參考下2024-01-01
有一段有意思的代碼-javascript現(xiàn)實多行信息
有一段有意思的代碼-javascript現(xiàn)實多行信息...2007-08-08
JavaScript?中從?URL?獲取數(shù)據(jù)的方法
這篇文章主要介紹了在?JavaScript?中從?URL?獲取數(shù)據(jù),我們使用了open函數(shù),將請求方法類型和URL作為參數(shù)傳遞,并調(diào)用XMLHttpRequest()的send()方法,結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05

