【问题标题】:Is abstraction a factor in using Javascript array methods that do not mutate original data and return a new array?抽象是使用不改变原始数据并返回新数组的 Javascript 数组方法的一个因素吗?
【发布时间】:2021-12-20 13:28:05
【问题描述】:

如果我错了,请纠正我:.map()、.filter() 的主要好处是它们执行的功能是它们提供了一个抽象层吗?在不改变原始数据的情况下返回具有选定数据位的新数组似乎是运动中的抽象。

【问题讨论】:

    标签: javascript arrays methods abstraction


    【解决方案1】:

    事实上,map 函数借鉴了函数范式原则 (https://en.wikipedia.org/wiki/Functional_programming) 的起源。在这种编程愿景中,我们倾向于使用“纯函数”,即不会改变其任何参数的函数。

    所以,这并不是真正的抽象,而是一种选择:

    • 你想改变你的论点吗?实时更改数组
    • 您想要数据的转换副本吗?使用地图

    在某些情况下,您不想更改原始数据,因此默认情况下,地图可能是合适的。

    在其他一些情况下,您可以选择。使用 map 的优点是减少了副作用的可能性(例如:应用程序的其他部分共享相同的数组,并且不希望更改),但代价是重复数据。

    所以,没有一个比另一个更好,这真的取决于你想做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 2015-08-17
      • 2016-02-12
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多