JavaScript 中 map、forEach、reduce、filter 之间的区别

发布于:2023-01-11 ⋅ 阅读:(218) ⋅ 点赞:(0)

👨 作者简介:大家好,我是Taro,前端领域创作者
✒️ 个人主页:唐璜Taro
🚀 支持我:点赞👍+📝 评论 + ⭐️收藏



前言

根据尤大的介绍,来个形象的区别
在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考


一、四者区分

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

1. forEach

forEach

forEach 就是你按顺序一个一个跟他们做点什么,具体要做什么随你便 (🤷‍♂️)

people.forEach(dude => {
  dude.pickUpSoap() 
})

2. map

map

map 就是你手里拿了一个空盒子(一个新的数组),叫他们按顺序一个个把自己的钱包放到你手中的空盒子里,结束的时候,你的盒子里面都是大家的钱包,钱包的顺序和人的顺序一一对应

let emptyBox = people.map(dude =>{
   return dude.wallet 
})

3. reduce

reduce

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

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

4. filter

filter

reduce 就是你开始拿着钱包数钱的时候,里面钱少于100块的不要 (留在原本的盒子中),比100块多的 丢到一个新的盒子里,这样结束的时候,你又有了一个新的数组,里面都是你想要的多于100的钱包

let morehundredBox= emptyBox.filter(wallet)=>{
   return wallet >= 100
})

Tips : map 和 filter 都是 immutable methods,也就是说它们只会返回一个新数组

总结

以上就是今天要讲的内容,本文仅仅简单介绍了map、forEach、reduce、filter 之间区别,而JavaScript 提供大量能使我们快速便捷地处理数据的函数和方法。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到