对于数组的深拷贝,习惯性的使用 […arr] 建立新地址,偶然间对某份对象数组数据进行同样的深拷贝时,发现修改新数组内部对象的元素依旧会影响到原数组对象
例如
let a = [
{ name: "小李" }
];
let b = [...a];
b[0].name = "小张";
console.log(a[0].name);
// 输出结果为"小张"
所以对于对象数组的整体深拷贝,其内部对象则依旧为浅拷贝
接下来你就应该知道该怎么做了:
let b = [...a.map(aInfo => {
return Object.assign({}, aInfo)
})]
b[0].name = "小张";
console.log(a[0].name);
// 输出结果为"小李"