- 數(shù)據(jù) 對象obj是一個復(fù)雜數(shù)據(jù)類型
const obj = {
name:'2323',
age:15,
sex:'男',
friend:[
{
name:'lili',
age:12,
sex:'女'
},
{
name:'haha',
age:2,
sex:'女'
},
]
}
- deepCopy函數(shù)遞歸實現(xiàn)obj數(shù)據(jù)的深拷貝
function deepCopy(newObj,oldObj) { //(新數(shù)據(jù)饲漾,被拷貝數(shù)據(jù))
for(key in oldObj){
if(Array.isArray(oldObj[key])){
// 如果數(shù)據(jù)類型是數(shù)組香椎,必須寫在最上面,
// 因為 ( [1,2] instanceof Object === true)
newObj[key] = []
deepCopy(newObj[key],oldObj[key])
}else if(oldObj[key] instanceof Object){
//如果數(shù)據(jù)是對象類型
newObj[key] = {}
deepCopy(newObj[key],oldObj[key])
} else{
//數(shù)據(jù)是基本數(shù)據(jù)類型
newObj[key] = oldObj[key]
}
}
return newObj
}
deepCopy(o,a)
console.log(o) //深拷貝完成,并且deepCopy(o,a)的值就是o的值
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者