zoukankan      html  css  js  c++  java
  • js参考---sort函数

    js参考---sort函数

    一、总结

    一句话总结:

    sort函数不同浏览器的实现不一样,所以具体的排序算法的原理也不一样,一样的就是如果返回a-b,则升序,返回b-a,则降序

    1、sort函数参数对应的回调函数的两个形参的作用是什么?

    接收排序时候传递过来的实参:sort函数里面的回调函数需要两个形参,来接收浏览器排序时候传递过来的实参,不同浏览器的排序算法不同,所以传递给形参的值也不相同

    2、不同浏览器sort函数的共性是什么?

    sort函数不同浏览器的实现不一样,所以具体的排序算法的原理也不一样,一样的就是如果返回a-b,则升序,返回b-a,则降序

    二、sort函数

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8" />
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             /*
     9              * 即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码来排序,
    10              *     所以对数字进排序时,可能会得到错误的结果。
    11              * 
    12              * 我们可以自己来指定排序的规则
    13              *     我们可以在sort()添加一个回调函数,来指定排序规则,
    14              *         回调函数中需要定义两个形参,
    15              *         浏览器将会分别使用数组中的元素作为实参去调用回调函数
    16              *         使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边
    17              *     - 浏览器会根据回调函数的返回值来决定元素的顺序,
    18              *         如果返回一个大于0的值,则元素会交换位置
    19              *         如果返回一个小于0的值,则元素位置不变
    20              *         如果返回一个0,则认为两个元素相等,也不交换位置
    21              * 
    22              *     - 如果需要升序排列,则返回 a-b
    23              *         如果需要降序排列,则返回b-a
    24              */
    25             arr = [5,4,2,1,3,6,8,7];
    26             
    27             arr.sort(function(a,b){
    28                 
    29                 //前边的大
    30                 /*if(a > b){
    31                     return -1;
    32                 }else if(a < b){
    33                     return 1;
    34                 }else{
    35                     return 0;
    36                 }*/
    37                 
    38                 //升序排列
    39                 //return a - b;
    40                 
    41                 //降序排列
    42                 return b - a;
    43                 
    44             });
    45             
    46             console.log(arr);
    47             
    48         </script>
    49     </head>
    50     <body>
    51         
    52     </body>
    53 </html>
     
  • 相关阅读:
    认识弹性盒子
    管理Linux服务器的用户和组(续篇)
    管理Linux服务器的用户和组
    centos7 mysql数据库安装和配置
    熟练使用Linux进程管理类命令
    熟练使用Linux系统信息类命令
    Linux操作系统-基本命令(二)
    Linux操作系统-基本命令(一)
    api接口统一封装
    10分钟,让你彻底明白Promise原理
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12526689.html
Copyright © 2011-2022 走看看