通俗易懂篇---JavaScript 中 map、foreach、reduce 间的区别?

foreach 作为一个无返回值的遍历而言应用的场景很普遍
假设有一个工具箱,foreach完成的就是告诉工具箱的每个工具需要干什么

  tool.forEach( (todo) => {
  todu.pickUpSoap();  //具体的工作
 });

map 遍历构成返回一个新的数组
通俗的来说就是你有一个新的容器, 然后将你原有篮子里的苹果(假设苹果对应的有每个人的名字,编号)一个个都按顺序丢进去。结束的时候你回得到一个完整的按顺序排列的新容器(里面是所有丢进去的苹果)

let box = apple.map((item)=> {
  return item.name + item.code;
});

**reduce ** 遍历并完成一次求和的过程
通俗的来说就是完成一次按顺序的遍历累加,例如你有一个钱包里面有很多不同面值的钱,需要知道你一共有多少钱的过程

let totalMoney = wallets.reduce( (countedMoney, wallet) => {
  return countedMoney + wallet.money;
}, 0);

**filter ** 遍历根据指定规则完成一次全员的筛查过程
通俗来讲 比如我们需要做核酸,一栋楼里有150个人,我们需要将其中的20个人作为居家隔离来区别,剩下的人做普筛。 我们只需要传入这个20个人的共同特征(健康码黄色)就会得到一个新的 20人的集合

let codeLve=60//绿色
let yewMan = allPople.filter(function (item) {
  return item.code > 60 ; //黄色
  });

需要明确一点map 和 filter 都是 immutable methods,它们只会返回一个新数组,而不会改变原来的那个数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值