const oldObj = {
name:'成立',
age:18,
gender:['男','女'],
hobby:{
hobby1:'打球',
hobby2:'打球'
}
}
let newObj = {}
//1.递归写法
function deepCopy(newObj, oldObj){
for(key in oldObj){
//先判断数组否则会出问题原因[] instanceof Array--ture [] instanceof Object--true
if(oldObj[key] instanceof Array){
newObj[key] = []
deepCopy(newObj[key], oldObj[key])
}else if(oldObj[key] instanceof Object){
newObj[key] = {}
deepCopy(newObj[key], oldObj[key])
}else{
newObj[key] = oldObj[key]
}
}
}
//2.Object.assign--只能拷贝单层数据结构,多层数据结构只能实现浅拷贝
const o = {a:1};
let n = {};
n = Object.assign(n,o);
//3.利用JSON.parse,JSON.stringify转换,函数无法转换
const o = {a:1,b:()=>{}};
let n = {};
n =JSON.parse(JSON.stringify(o));
console.log(n);//{"a": 2}
console.log(o);//{"a": 1,b:()=>{}}
实现简单数据结构深拷贝
最新推荐文章于 2024-10-31 21:04:10 发布
文章介绍了在JavaScript中使用递归实现深拷贝的方法,以及Object.assign的浅拷贝局限性,以及通过JSON.parse和stringify进行转换的示例。
摘要由CSDN通过智能技术生成