javascript - 如何将此函数转换为纯函数?
问题描述
我有以下功能。
const array = [1, 2, 3];
// Impure function
function addElementToArray(element) {
array.push(element);
}
这是一个不纯的函数,因为它会改变全局数组。所以,我认为将整个数组作为函数参数将使函数变得纯粹。
function addElement(array, element) {
array.push(element);
}
但是,我发现它也有副作用。
那么,使它成为纯函数的最佳方法是什么?
解决方案
在函数体内,您可以复制输入数组并将元素附加到该新数组的末尾。您可以使用 es6 扩展运算符轻松做到这一点
function addElementIntoArray(a, element) {
// returning a brand new array
return [...a, element];
}
这样,它就不会改变全局数组,并且该函数将是一个纯函数。
推荐阅读
- mongodb - Mongodb 安装 DB 5.0 在 mongodb-database-tools-100.4.0 上失败
- mysql - 注册日期后 1 个月和 2 个月内从 1 月开始每位会员的平均收入
- reactjs - 反应,让 UseMemo 与文本框一起正常工作
- java - 使用纯 Java 验证 JWT 签名
- json - JSON响应中同一对象的字符串和布尔值
- excel - 删除多个工作表中数据集末尾的尾随零
- javascript - 我正在尝试 HTML5 教程中的 sessionStorage 示例,但它不起作用,并且“右框”部分没有任何变化
- angular - onclick is supposed to open a webpage in angular ionic but it doesnot works
- batch-file - (Batch) 如何检测 Windows 使用的是深色主题还是白色主题?
- c# - System.NullReferenceException:“对象引用未设置为对象的实例。” 这里的问题是什么?