27.sort深入研究

1.sort回调函数

  1)回调函数:把一个方法A当做参数值,传递给另外一个函数B,然后在B执行的过程中,我们随时根据需求让A方法执行

    【案例1】

       function A() {}

     function B (fn) {

       fn();

       fn();

     }

     B(A)        

    【案例2】 sort排序的原理

    art.sort(function (a,b) {

      // a 每一次执行匿名函数的时候,找到的数组中的当前项

      // b 当前项的后一项

      console.log(a,b)

      // return a - b;   // 升序(如果a>b,返回>0,a和b交换位置)

      // return b - a;   // 降序(如果b>a,返回<0,a和b交换位置)

      // return的是一个>0或者<=0的数,大于0让a和b交换一下位置,小于等于0原来的位置不动

      // return 1; // 不管a和b谁大,每一次都返回一个恒大于0的数,也就是每一次a和b都要交换位置,最后的结果就是原有数组倒过来排列了==》reverse

    } )

  2)给二维数组排序

    var ary = [

       {name: "张三", age: 23},

       {name: "李四", age: 213},

       {name: "张三", age: 23},

     ]

    【案例1】 按照年龄排序

      ary.sort(function (a,b) {

        return parseFloat(a.age) - parseFloat(b.age) // 按照年龄排序

        return ( parseFloat(a.age) - parseFloat(b.age) ) * -1;

      })

    【案例2】按照姓名排序

      ary.sort(function (a,b) {

        return (a.name).localeCompare(b.name)
      })

 

posted @ 2018-04-27 11:31  Z-DL  阅读(143)  评论(0编辑  收藏  举报