我有将项目数组作为参数的函数。
在函数中,我想找到一项并修改其属性。

const defaultGroup = find(groupedCustomFields, group => group.name === DEFAULT_GROUP); //[find][1] - it's `lodash` function
defaultGroup.fields = defaultGroup.fields.filter(f => !f.isGroupEditable);


此代码从集合中选择项(第一个匹配项)并更新对象属性。

结果,我的输入集合也被更新(其中更新了找到的项目)。
我不想这么做因此,我认为我应该修改该项目的副本。

最好的方法是什么?

const defaultGroup = find(groupedCustomFields, group => group.name === DEFAULT_GROUP),
copyOfDefGroup = Object.assign({}, defaultGroup);


此代码是否适合此操作?

最佳答案

我认为Object.assign对于复制对象很好。
额外提示-要复制数组,array.slice()是最简单的方法

09-06 04:29