JS数组中的map()、filter()以及reduce()的基本使用

<script>
        // filter中的回调函数有一个要求:必须返回一个boolean值
        // true:当返回true时,函数内部会自动将这次回调的n加入到新的数组中
        // false:当返回false时,函数内部会过滤掉这次的n
        const nums = [10,20,111,222,444,40,50];

        // 1. filter函数的使用
        
        let newNums = nums.filter(function(n){
    
    
            return n<100
        })

        console.log(newNums);// 10 20 40 50

        // 2. map函数的使用
        
        let new2Nums = newNums.map(function(n){
    
    
            return n*2
        })
        console.log(new2Nums);// 20 40 80 100

        // 3.reduce函数的使用
        // reduce作用对数组中所有的内容进行汇总
        let total = new2Nums.reduce(function(preValue,n){
    
    
            return  preValue + n
        },0)
        // 这里的 0 ,是寄给preValue的初始值 

        // 第一次: preValue:0      n:20
        // 第2次:  preValue:0+20   n:40
        // 第3次:  preValue:20+40  n:80
        // 第4次:  preValue:140    n:100
        // 240

        console.log(total);


        // 三种方法汇总使用
        // 目的:扫选出数组中小于100的值,并将符合的值 * 2 , 再累加
        let goal = nums.filter(function(n){
    
    
            return n<100
        }).map(function(n){
    
    
            return n*2
        }).reduce(function(preValue,n){
    
    
            return preValue + n;
        },0)

        console.log(goal);

        // 以上方法若用箭头函数简写

        let goal2 = nums.filter(n => n<100).map(n => n*2).reduce((preValue,n) => preValue+n);
        console.log(goal2);

执行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45664402/article/details/114481843