1、为什么要深拷贝?
当我们在js中使用数组这种数据类型时,既希望使用原数组的所有元素,又希望在修改原数组(或新数组)时数组中的元素不相互影响。
代码示例
let arr1 = [1, 2, 3] let arr2 = arr1; arr1[0] = 3; //3 console.log(arr2); // [3, 2, 3]
// 上面代码中因为修改了arr1的0下标的元素导致了arr2中0下标的元素随之改变
2、使用JSON.parse(JSON.stringify())来实现深拷贝来解决数组直接修改元素互相影响的问题
let arr1 = [1, 2, 3] let arr3 = JSON.parse(JSON.stringify(arr1)); arr1[1] = 4; console.log(arr3) \ [1, 2, 3] console.log(arr1) \ [1, 4, 3]