实现深拷贝的几种方法(JS)
2022-05-13 本文已影响0人
鐵衣
- 使用递归
function deepClone(obj) {
let objClone = Array.isArray(obj) ? [] : {};
if(obj && typeof obj === "object") {
for(key in obj) {
if(obj.hasOwnProperty(key)) {
if(obj[key] && typeof obj[key] === "object") {
objClone[key] = deepClonel(obj[key]);
} else {
objClone[key] = obj[key];
}
}
}
}
return objClone;
}
- 通过 JSON 对象实现深拷贝
function deepClone(obj) {
let _obj = JSON.stringify(obj),objClone = JSON.parse(_obj);
return objClone;
}
- lodash函数库实现深拷贝
var objects = [{ 'a': 1 }, { 'b': 2 }];
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);