一、数组深拷贝的4种方法
1. 使用JSON.parse()和JSON.stringify():
const arr1 = [1, 2, 3, 4];
const arr2 = JSON.parse(JSON.stringify(arr1));
2. 使用Array.from():
const arr1 = [1, 2, 3, 4];
const arr2 = Array.from(arr1);
3. 使用扩展运算符:
const arr1 = [1, 2, 3, 4];
const arr2 = […arr1];
4. 使用Array.map():
const arr1 = [1, 2, 3, 4];
const arr2 = arr1.map(item => item);
二、对象深拷贝的4种方法
1. 使用JSON.parse()和JSON.stringify():
// 首先定义一个对象
let obj = {
name: ‘tom’,
age: 18
};
// 实现深拷贝
let deepCopy = JSON.parse(JSON.stringify(obj));
2. 使用Object.assign():
// 定义一个对象
let obj = {
name: ‘tom’,
age: 19
};
// 深拷贝
let deepCopy = Object.assign({}, obj);
3. 使用ES6的扩展运算符:
// 定义一个对象
let obj = {
name: ‘tom’,
age: 20
};
// 深拷贝
let deepCopy = {…obj};
4. 使用lodash的cloneDeep():
// 定义一个对象
let obj = {
name: ‘tom’,
age: 21
};
// 引入lodash
import _ from ‘lodash’;
// 深拷贝
let deepCopy = _.cloneDeep(obj);