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六个数字,
分别采用了按字母先后顺序(是的,数字也能按字母顺序排列)和按数字大小顺序排列的方式

Javascript:

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;
}
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>

运行界面:
JavaScript踩坑(5)比值函数 function(a, b)_第1张图片
点击按字母升序排序按钮:
JavaScript踩坑(5)比值函数 function(a, b)_第2张图片
点击按数字升序排序按钮:
JavaScript踩坑(5)比值函数 function(a, b)_第3张图片

你可能感兴趣的:(JavaScript,Web)