Js中几种高阶函数

Js中几种高阶函数

如果一个函数接受一个或多个函数作为参数,或者可以返回一个参数,则这样的函数就叫高阶函数

常见的高阶函数 ,setInterval,setTimeout,sort
一般用于函数回调

例:

function foo(f){
        if(f instanceof Function){
            f();
        }
    }
    foo(function(){
        alert("asdf");
    })

1.map:应用于数组,对数组进行操作

var arr = [1,9,4,16,25];
    var arr2 = arr.map(function(x){
        return x*2;
    })
    var arr3 = arr.map((Math.sqrt))
    console.log(arr2);  //[2,18,8,32,50]
    console.log(arr3);  //[1,3,2,4,5]

2.reduce 归纳的意思 作用是对数组的每个值求和积等操作

var arr = [1,2,3,4];
    var arr2 = arr.reduce(function(a,ele,index){ //函数里面有四个参数,还有一个是array数组本身

        return a*ele;
    },1);                       //a的初始值为此时传入的参数,ele为每一个数组值,index为数组下标
    console.log(arr2);  // 24 即1*2*3*4
    // 求10的阶乘
    var arr3 = new Array(10);
    arr3.fill(1); //填充数组里的值,每个都为1
    console.log(arr3);
    var arr4 = arr3.reduce(function(a,ele,index,array){
        return a*(index+1);
    },1);
    console.log(arr4);  //打印10的阶乘 3628800

3.filter 数组过滤

var arr = [1,2,3,4,5];
    var a1 = arr.filter(function (ele,index,array){
        return ele%2 == 1    //返回所有奇数,过滤了所有偶数
    })
    console.log(a1);    //[1,3,5]

你可能感兴趣的:(Js中几种高阶函数)