美文网首页
数组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