對於數組的深拷貝,習慣性的使用 […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);
// 輸出結果爲"小李"