filter、map和reduce的用法

filter:

filter中的回调函数有一个要求:必须返回一个布尔值
true:当返回值是true时,函数内部会自动将这次回调的num加入新的数组中
false:当返回值是false时,函数内部会过滤这次的num

  const nums = [10, 20, 50, 20, 30, 100, 120, 40, 21, 310];
  let newNums = nums.filter(function (num) {
    return num < 100;
  });
  console.log(newNums);   //[10, 20, 50, 20, 30, 40, 21]

map:

map函数会返回对某个数组内的元素全部进行操作以后的新的数组

  let newNums2 = newNums.map(function (n) {
    return n * 2;
  });
  console.log(newNums2);   //[20, 40, 100, 40, 60, 80, 42]

reduce:

reduce作用是对数组中的所有的内容进行汇总。
参数共有4个,prev,cur,index,arr,但是常用的只有前两个。
意思分别为:
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。

  let total = newNums2.reduce(function (prev, cur,index,arr) { 
    return prev + cur;
  }, 0);
  console.log(total);    //382

由于传入了初始值0,所以开始时prev的值为0,cur的值为数组第一项20,相加之后返回值为20作为下一轮回调的prev值,然后再继续与下一个数组项相加,以此类推,直至完成所有数组项的和并返回。
要是未传入初始值0,则开始时prev的值为数组第一项20,cur的值为数组第二项40,两值相加后继续进入下一轮回调。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值