地图/过滤/减少速成价格
这最初是作为Twitter主题发布的:https://twitter.com/chrisachard/status/1173750491458789378
您是否听说过地图,过滤和减少,但从未真正理解过它们?
这是一个?map()。filter()。reduce()?速成价格给你
1。
map
, filter
和 reduce
都可以独立运作,也可以链接在一起
它们在阵列上运行并对其进行转换
2。
filter
获取数组并返回一个新数组,该数组仅包含与某些条件匹配的元素
3。
它遍历元素,将每个元素传递给回调函数
你可以回来 true
将该元素包含在新数组中,或 false
排除它
4。
考虑到 map
像一个元素转换函数
它循环遍历数组,您可以为数组中的每个点返回一个新元素
5。
这允许您将每个元素转换为新的元素(或保持相同)
类型不必相同:可以返回对象,字符串,数字 – 任何东西
6。
reduce
在数组上循环,然后让你将元素“收集”到其他东西中(通过运行一个函数)
你将第二个参数指定为“别的东西”
这样,您可以将数组“折叠”(缩小)为新数组,对象,数字等。
7。
在每个循环期间 reduce
,你可以得到最后一个循环的结果,以及数组中的下一个元素
更改结果,然后将其返回以进行下一次循环迭代
完成后,您将拥有完整的集合
8。
回调功能为 map
, filter
和 reduce
如果需要,all也可以获取当前索引和整个原始数组
9。
现在都在一起了:
链 filter
同 map
首先删除你不关心的元素,然后转换它们
要么,
链 filter
同 reduce
首先过滤列表,然后将其转换为其他内容
10。
那么为什么map,filter和reduce有用呢?
- 不必手动循环数组
- 链接在一起进行简短,直接的数组转换
- 可以重用回调函数并将它们组合在一起
代码链接
以下是一些交互式代码示例:https://chrisachard.com/examples/map-filter-reduce
我意识到这可能令人困惑
如果我可以帮忙,请向我或DM发消息
喜欢这个速成班吗?
在twitter上找到更多:@chrisachard
在我的通讯?
谢谢阅读