1. 程式人生 > 其它 >JavaScript踩坑(5)比值函式 function(a, b)

JavaScript踩坑(5)比值函式 function(a, b)

在下午學習JavaScript陣列的過程中,多次用到了比值函式

比值函式function( a, b )是和JavaScript裡的sort( )函式一起使用的,比值函式巢狀在sort( )函式的圓括號裡

為什麼要用比值函式?

  1. sort() 以字母順序對陣列進行升序排序
  2. 而數字順序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