数组Map、Reduce、Filter的用法

数组的使用方法,大都是普通的循环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 个人笔记 公众号

转载于:https://juejin.im/post/5c4718186fb9a049d05e10c8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值