javascript集合中的引用问题
我在javascript集合中遇到了某种引用问题 这是普朗克-> 问题是,当我javascript集合中的引用问题,javascript,arrays,Javascript,Arrays,我在javascript集合中遇到了某种引用问题 这是普朗克-> 问题是,当我 approverSteps[0].loadedApprovers.push({prop1: 'test'}); 然后,approverSteps集合中第二个元素(即approverSteps)的loadedApprovers属性也将得到更新。我知道这是一个参考问题,但不知如何解决 提前非常感谢。所有项目都将其加载的approvers数组作为对同一空数组的引用 const approvalStepDefault =
approverSteps[0].loadedApprovers.push({prop1: 'test'});
然后,approverSteps集合中第二个元素(即approverSteps)的loadedApprovers属性也将得到更新。我知道这是一个参考问题,但不知如何解决
提前非常感谢。所有项目都将其
加载的approvers
数组作为对同一空数组的引用
const approvalStepDefault = {
loadedApprovers: [] // this array
};
数组也是通过引用传递的(它们是对象)
试试这个:
// no need for approvalStepDefault
let data = {
steps: [{id: '01'},{id: '02'}]
};
let approverSteps = (data.steps || []).map(item => {
const obj = Object.assign({}, item); // copy item so the original item will remain intact (remove this line if you don't want to work on a clone)
obj.loadedApprovers = []; // brand new array for each object
return obj;
});
approverSteps[0].loadedApprovers.push({prop1: 'test'});
console.log(approverSteps);
你应该把你的代码放在你的问题中,描述你遇到的实际问题——发生了什么,你期望发生什么,它们是如何不同的,等等。