高阶函数(filter、map、reduce)

需求: 对数组中小于50的数乘2再相加 原始写法 vs 高阶函数(filter、map、reduce)写法/箭头函数

原始写法:

let num=[80,100,20,10,30,100,50];
        // 原始做法
        //第一步:
        let num1=[];
        for(let n of num){
            if(n<50){
                num1.push(n);
            }
        }
        // 第二步:
        let num2=[];
        for(let n of num1){
            num2.push(n*2);
        }
        //第三步
        let total=0;
        for(let n of num2){
            total+=n;
        }

高阶函数写法

//高阶函数(filter、map、reduce)
        let total1=num.filter(function(n){
            return n<50;
        }).map(function(n){
            return n*2;
        }).reduce(function(previousValue,n){
            return previousValue+n;
        },0)

高阶函数箭头写法

// 高阶函数(filter、map、reduce) 箭头函数写法
        let total2=num.filter(n=>n<50).map(n=>n*2).reduce((previousValue,n)=>previousValue+n);
posted @ 2021-03-31 16:31  两年半coder练习生  阅读(73)  评论(0)    收藏  举报