JavaScript踩坑(5)比值函式 function(a, b)
阿新 • • 發佈:2021-09-27
在下午學習JavaScript陣列的過程中,多次用到了比值函式
比值函式function( a, b )是和JavaScript裡的sort( )函式一起使用的,比值函式巢狀在sort( )函式的圓括號裡
為什麼要用比值函式?
- sort() 以字母順序對陣列進行升序排序
- 而數字順序sort( )無法憑自己單獨實現,這裡就體現了比值函式的作用
sort() 函式比較兩個值時,
會將值傳送到巢狀在圓括號裡的比值函式function(a, b)
function(a, b) 計算並返回 (a - b)的值, 值或正或負或零,
sort( )可根據返回的值的正負對陣列進行排序
按我自己的理解:
比值函式的目的是將結果的正負供sort( )參考,
sort( )光憑藉正負號就能將所有數按順序排列出來
注意:
function(a, b){
return (a - b)
}
使值按升序由小到大排序
function(a, b){
return (b - a)
}
使值按降序由大到小排序
不賣關子,上程式碼:
這裡提供了points陣列,有11, 100, 1, 5, 25, 10六個數字,
分別採用了按字母先後順序(是的,數字也能按字母順序排列)和按數字大小順序排列的方式
<script> var points = [11, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; // 以字母/字串順序對陣列進行排序function sort_by_letter() { points = points.sort(); document.getElementById("demo").innerHTML = points; } //以數字大小排序 function sort_by_number() { points.sort(function (a,b) { //比值函式 起到數字升序排序的作用 return (a - b) }); document.getElementById("demo").innerHTML = points; } </script>
HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS陣列排序</title> </head> <body> <h1>JavaScript 陣列排序</h1> <p id="demo"></p> <button onclick="sort_by_letter()">按字母升序排序</button> <button onclick="sort_by_number()">按數字升序排序</button> <script src="../Javascript/0115_05.js"></script> </body> </html>
執行介面:
點選按字母升序排序按鈕:
點選按數字升序排序按鈕:
詳情檢視原文連結:https://blog.csdn.net/qwe122343/article/details/103992772