JavaScript filter/map/reduce方法 初次体验(基础)

JavaScript filter/map/reduce方法 初次体验(基础)

filter/map/reduce

filter()

需求:取出nums数组中小于100的数

nums = [11, 55, 89, 65, 66, 21, 112, 559, 1];
    let newNums = nums.filter(function(x){
      return x < 100;
    })
    console.log(newNums);

在这里插入图片描述
filter()方法会创建一个新数组,原数组的每个元素传入回调函数中,回调函数中有return返回值,若返回值为true,这个元素保存到新数组中;若返回值为false,则该元素不保存到新数组中;原数组不发生改变。

这个例子中filter()接受了一个参数函数作为参数,函数中的xnums数组中的元素。
nums数组中共9个元素,所以这个

function(x){
      return x < 100;
    }

函数会执行九次,
第一次:x=11 < 100成立表达式为true,函数返回truefilter()11放入新的数组newNums
当表示不成立为false的时候filter()将过滤掉这个使表达式为false的这个元素,不会将这个放入新数组。以此类推最终返回一个新的数组newNums

map()

需求:将newNums数组中的值都乘以100(接上个需求)

let new1Nums = newNums.map(function(x){
      return x * 100;
    })
    console.log(new1Nums);

在这里插入图片描述

reduce

需求:将new1Nums数组中的值相加求和(接上个需求)

let new2Nums = new1Nums.reduce(function(pre, n){
      return pre + n;
    }, 0)
    console.log(new2Nums);

在这里插入图片描述

总结:

fliter相当于过滤,对数组元素根据条件进行筛选。
map相当于对映射,对数组元素进行操作,
reduce相当于汇总,都不修改原数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值