js深拷贝数组

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]

  

原文地址:https://www.cnblogs.com/chen55555/p/13517858.html