美文网首页
JavaScript 中 map、foreach、reduce、

JavaScript 中 map、foreach、reduce、

作者: 落叶无声xcm | 来源:发表于2018-05-05 21:27 被阅读58次

假设我们有一个数组,每个元素是一个人。你面前站了一排人。

forEach 就是你按顺序一个一个跟他们说要做什么

peoples.forEach(function(people) {
  people.doSomething()
});

map 就是你手里拿一个盒子(一个新的数组),一个一个叫他们把钱包扔进去,结束的时候你获得了一个新的数组,里面是大家的钱包,钱包的顺序和人的书序一一对应。

var wallets = people.map(function(people) {
  return people.wallet;
});

reduce 就是你拿着钱包,一个一个数过去看里面有多少钱啊?每检查一个,你就和前面的总和加起来,这样结束的时候你就知道大家总动有多少钱了。

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

filter就是你一个个钱包数过去的时候,里面少于100块的不要,留在原来的盒子里,多于100块的丢到新的盒子里,这样结束的时候,你又有了一个新的数组,里面是所有多于 100 块的钱包

var fatWallets = wallets.filter(function(wallet) {
  return wallet.money > 100
});

总结: map 和 filter 都是 immutable methods,也就是说会返回一个新数组,而不会改变原数组的。

参考:如何形象地解释 JavaScript 中 map、foreach、reduce 间的区别?

相关文章

网友评论

      本文标题:JavaScript 中 map、foreach、reduce、

      本文链接:https://www.haomeiwen.com/subject/cfwerftx.html