常用的深拷贝方法:
concat()
let arr = [1];
let arr1 = arr.concat();
arr1[1] = 2;
console.log(arr1); // [1,2]
console.log(arr); // [1]
slice()
let arr = [1];
let arr1 = arr.slice(0);
arr1[1] = 2;
console.log(arr1); // [1,2]
console.log(arr); // [1]
for循环
let arr = [1];
let arr1 = [];
for(let i = 0;i < arr.length;i++) {
arr1.push(arr[i])
}
console.log(arr1); // [1,2]
console.log(arr); // [1]
es6的方法
let arr = [1];
let [...arr1] = arr;
arr1[1] = 2;
console.log(arr1); // [1,2]
console.log(arr); // [1]
然而,以上方法在小程序中均无效(???),可以使用下面的方法进行深拷贝
let arr = [1];
let arr1 = JSON.parse(JSON.stringify(arr));
arr1[1] = 2;
console.log(arr1); // [1,2]
console.log(arr); // [1]