美文网首页
数组Map、Reduce、Filter的用法

数组Map、Reduce、Filter的用法

作者: wade3po | 来源:发表于2019-02-02 15:42 被阅读4次

    数组的使用方法,大都是普通的循环for、for in、forEach等,今天推荐三个新的方法,在一些特殊场景可以有很大作用。虽然这三个新方法for循环都能实现,但是个人认为用着三个方法会相对简便。

    Map:这个方法是一一对应的。

    比如全班考试,判断及格还是不及格,如果用map,那么需要在方法里面return及格还是不及格,这时候就会返回一个新的数组。Map里面放一个方法,然后是一个参数,参数就是每一个数组的元素。记得map里面放的是一个方法。

    var arr = [37, 88, 65, 96];
    var re = arr.map(function (val) {
        if(val > 60){
            return '及格';
        }else{
            return '不及格';
        }
    });
    console.log(re);//["不及格", "及格", "及格", "及格"]
    

    Reduce:计算总数或者平均数,这个的话只返回一个数据。

    比如要计算一个数组的总和或者平均数,同样的,reduce里面也是放一个方法,这个方法传三个参数,每一次循环第一个参数都是之前的总和,第二个参数是这次循环要加的数据,最后一个是循环的次数。

    var arr = [2, 3, 4, 5];
    
    var sum = arr.reduce(function (sum, item) {
    
        return sum + item;
    
    });
    
    console.log(sum);//14
    

    Filter:过滤、筛选,返回正确的东西。

    当需要判断是否有某个字符串或者是某个元素的时候,用这个过滤器,很容易就能得到相要的数组,在天猫等商城,过滤价格好评等使用filter,简单的就能返回过滤后的数据。Filter也是放一个方法,然后里面做判断操作,只要是true的,那这个元素就会返回,false的就会帮你过滤掉。

    var arr = [23, 63, 44, 85, 90];
    
    var re = arr.filter(function (val) {
    
        return val > 60;
    
    });
    
    console.log(re);//[63, 85, 90]
    

    欢迎关注 Coding 个人笔记 公众号

    相关文章

      网友评论

          本文标题:数组Map、Reduce、Filter的用法

          本文链接:https://www.haomeiwen.com/subject/zvbssqtx.html