javascript - 抽象是使用不会改变原始数据并返回新数组的 Javascript 数组方法的一个因素吗?
问题描述
如果我错了,请纠正我:.map()、.filter() 的主要好处是它们执行的功能是它们提供抽象层的事实吗?返回具有选定数据位的新数组而不改变原始数组似乎是运动中的抽象。
解决方案
事实上,map 函数借鉴了函数范式原则 ( https://en.wikipedia.org/wiki/Functional_programming ) 的起源。在这种编程愿景中,我们倾向于使用“纯函数”,即不会改变其任何参数的函数。
所以,它不是真正的抽象,而是一种选择:
- 你想改变你的论点吗?实时更改阵列
- 您想要数据的转换副本吗?使用地图
在某些情况下,您不想更改原始数据,因此默认情况下 map 可能是合适的。
在其他一些情况下,您可以选择。使用 map 的优点是减少了副作用的可能性(例如:应用程序的其他部分共享相同的数组,并且不期望更改),但以复制数据为代价。
所以,没有一个比另一个更好,这真的取决于你想做什么。
推荐阅读
- mysql - 使用 for 循环和多个 orWhen 为图表构建数组
- node.js - node.js 模块中的 Sinon Stub 依赖类
- flutter - 颤振一次性选择单选按钮
- python-2.7 - 使用带有可变日志文件名的 dictConfig()
- python - 如何为推荐数据集取消旋转 pandas 数据框?
- java - 抱怨在声纳中记录和重新抛出异常
- python - 检查 Discord 服务器中的成员的循环问题
- java - Android ViewPager:调用 onStop() 将 ExoPlayer 实例设置为 null
- javascript - 具有动态事件绑定和动态函数的 Angular 动态表单
- python - 有没有办法确定 python 字符串与另一个字符串不同的索引?