let obj={
a:12,
b:{
c: {
d:123,
e: 'abc'
},
f: true
},
g:[1,2,3,'345']
}
function cloneDeep(obj,nowObj){
let objNew = nowObj||{}
for (let i in obj) {
if (typeof obj[i] === 'object') {
objNew[i] = obj[i].constructor === Array?[]:{}
cloneDeep(obj[i],objNew[i])
}else{
objNew[i] = obj[i]
}
}
return objNew
}
let objCopy =cloneDeep(obj)
objCopy.b.c.d = 345
console.log('obj:',obj);
console.log('objCopy:',objCopy);
深度拷贝--递归
最新推荐文章于 2024-09-25 18:15:20 发布
文章提供了一个JavaScript函数cloneDeep,用于实现对象和数组的深拷贝。通过递归遍历对象和数组的属性,创建一个新的副本,修改拷贝后的对象不会影响原始对象。示例中展示了如何使用该函数并验证了其效果。
摘要由CSDN通过智能技术生成