如何将此函数转换为纯函数?

阿希克

我有以下功能。

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];
}

因此,它不会使全局数组发生突变,并且该函数将是纯函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章