js中高阶函数

1、高阶函数是至少知足下列一个条件的函数:javascript

  • 接受一个或多个函数做为输入java

  • 返回一个函数数组

 

2、js中高阶函数函数

一、reduceui

概念:[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
做用:作累计运算
        var arr = [1,3,5,7,9];
        
        function add(x,y){
            return x+y;
        }

        var results = arr.reduce(add);
        console.log(results);     //25

 

二、mapthis

概念:依次遍历数组中的全部元素,同时对每一个元素执行函数
做用:对每一个元素作操做
        function pow(x){
            return x*x;
        }
        var arr = [1,2,3,4,5,6];
        var results = arr.map(pow);
        console.log(results);      //[1,4,9,16,25,36]

 

尝试本身DIY一个mapspa

       var arr = {
            a:[1,2,3,4,5,6],

            map:function(callback){
                var temp = [];
                for(var i in this.a){
                    temp.push(callback(this.a[i]))
                }
                return temp;
            }
        }

        function pow(x){
            return x*x;
        }

        var results = arr.map(pow);
        console.log(results);      //[1,4,9,16,25,36]

 

三、filterblog

概念:依次遍历数组中的全部元素,同时对每一个元素判断是否知足函数的条件
做用:对每一个元素进行判断
        var arr = [2,4,1,7,2,3];
        function go(x){
            return x>=4;
        }
        var results = arr.filter(go);
        console.log(results);     //[4,7]

 

四、sort排序

做用:对数组元素作排序
        var arr = [3,1,2,0,12];
        function look(x,y){
                return y-x;
        }
        var results = arr.sort(look);
        console.log(results);       //[12, 3, 2, 1, 0]
        

查阅资料:V8 引擎 sort 函数只给出了两种排序 InsertionSort 和 QuickSort,数组长度小于等于 22 的用插入排序 InsertionSort,比22大的数组则使用快速排序 QuickSortip

 

参考https://liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499355829ead974e550644e2ebd9fd8bb1b0dd721000

相关文章
相关标签/搜索