【发布时间】:2021-12-20 13:28:05
【问题描述】:
如果我错了,请纠正我:.map()、.filter() 的主要好处是它们执行的功能是它们提供了一个抽象层吗?在不改变原始数据的情况下返回具有选定数据位的新数组似乎是运动中的抽象。
【问题讨论】:
标签: javascript arrays methods abstraction
如果我错了,请纠正我:.map()、.filter() 的主要好处是它们执行的功能是它们提供了一个抽象层吗?在不改变原始数据的情况下返回具有选定数据位的新数组似乎是运动中的抽象。
【问题讨论】:
标签: javascript arrays methods abstraction
事实上,map 函数借鉴了函数范式原则 (https://en.wikipedia.org/wiki/Functional_programming) 的起源。在这种编程愿景中,我们倾向于使用“纯函数”,即不会改变其任何参数的函数。
所以,这并不是真正的抽象,而是一种选择:
在某些情况下,您不想更改原始数据,因此默认情况下,地图可能是合适的。
在其他一些情况下,您可以选择。使用 map 的优点是减少了副作用的可能性(例如:应用程序的其他部分共享相同的数组,并且不希望更改),但代价是重复数据。
所以,没有一个比另一个更好,这真的取决于你想做什么。
【讨论】: