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

相關文章
相關標籤/搜索