foreach双重嵌套无法正常对数据进行操作的问题
let arr = [] as any[];
this.passData.forEach((item) => {
const obj = {} as any;
obj["userId"] = item.id;
this.returnData.forEach((i) => {
obj["rsvrId"] = i.id;
console.log(obj)
arr.push(obj);
});
});
/* JSON.parse(JSON.stringify(obj)) */
console.log(arr)
预期输出正常的每个id对应多个属性的对象,结果数组里所有的对象都变成最后的id和最后的属性组成的对象,错误结果如下
将代码修改如下,增加JSON.parse(JSON.stringify(obj)),对obj进行深拷贝,就可以成功啦
let arr = [] as any[];
this.passData.forEach((item) => {
const obj = {} as any;
obj["userId"] = item.id;
this.returnData.forEach((i) => {
obj["rsvrId"] = i.id;
console.log(obj)
arr.push(JSON.parse(JSON.stringify(obj)));
});
});
console.log(arr)