JavaScript学习笔记(三)

19、JavaScript 数组排序

19.1 数组排序:sort()

  • sort() 方法以字母顺序对数组进行排序:

  <p id="demo"></p>
  <script>
    var cars01 = ["Apple", "City", "Dog", "Bad"];
    document.getElementById('demo').innerHTML = cars01.sort();;
  </script>

运行效果:Apple,Bad,City,Dog

19.2 反转数组:reverse()

(1)数组反转:


  <p id="demo"></p>
  <script>
    var cars01 = ["Apple", "City", "Dog", "Bad"];
    document.getElementById('demo').innerHTML = cars01.reverse();;
  </script>

运行效果:Bad,Dog,City,Apple

(2)您可以使用它以降序对数组进行排序:

<p id="demo"></p>
  <script>
    var cars01 = ["Apple", "City", "Dog", "Bad"];
    document.getElementById('demo').innerHTML = cars01.sort().reverse();
  </script>

运行效果:Dog,City,Bad,Apple

19.3 比值函数

比较函数的目的是定义另一种排序顺序。

比较函数应该返回一个负,零或正值,这取决于参数:

function(a, b){return a-b}

当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。

19.4 数字排序

默认地,sort() 函数按照字符串顺序对值进行排序。

该函数很适合字符串(“Apple” 会排在 “Banana” 之前)。

不过,如果数字按照字符串来排序,则 “25” 大于 “100”,因为 “2” 大于 “1”。

正因如此,sort() 方法在对数值排序时会产生不正确的结果。

我们通过一个比值函数来修正此问题:
(1)sort()实现数字升序:

<body>
  <button onclick="myFunction()">点击</button>

  <p id="demo"></p>
  <script>
    var nums=[40,5,10,20,100,1];
    document.getElementById('demo').innerHTML = nums;
    function myFunction() {
     
     
      nums.sort(function(a,b){
     
     return a-b});
      document.getElementById('demo').innerHTML =nums;
    }
  </script>
</body>

运行效果:1,5,10,20,40,100

(2)sort()实现数字降序:

<body>
  <button onclick="myFunction()">点击</button>

  <p id="demo"></p>
  <script>
    var nums=[40,5,10,20,100,1];
    document.getElementById('demo').innerHTML = nums;
    function myFunction() {
     
     
      nums.sort(function(a,b){
     
     return b-a});
      document.getElementById('demo').innerHTML =nums;
    }
  </script>
</body>

运行效果:100,40,20,10,5,1

19.5 以随机顺序排序数组

<body>
  <button onclick="myFunction()">点击</button>

  <p id="demo"></p>
  <script>
    var nums=[40,5,10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值