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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章