js 深拷贝,(递归)(用于对象,数组,对象数组等大部分数据格式)
let dataJson={
id:1,
name:'张三',
post:['销售','后勤'],
address:[{
id:11,
region:'北京',
}]
}
deepCopy (initialObj, finalObj) {
const obj = finalObj || {}
for (const key in initialObj) {
const item = initialObj[key]
if (item === obj) {
continue
}
if (item instanceof Array) {
obj[key] = []
deepCopy(item, obj[key])
} else if (item instanceof Object) {
obj[key] = {}
deepCopy(item, obj[key])
} else {
obj[key] = item
}
}
return obj
}
let dataJson2 = deepCopy (dataJson)
console.log(dataJson2)
或者
let dataJson3={}
deepCopy(dataJson,dataJson3)
console.log(dataJson3)
在这里插入代码片