深拷贝
//一、constructor
function deepClone(obj){
// 判断是数组还是对象
const a = obj.constructor === Array ? [] : {}
for(let keys in obj){
if(obj.hasOwnProperty(keys)){
// 对象 数组
if(obj[keys] && typeof obj[keys] === 'object'){
a[keys] = obj[keys].constructor === Array ? [] : {}
a[keys] = deepClone(obj[keys])
} else {
a[keys] = obj[keys]
}
}
}
return a
}
//二、 instanceof
function deepClone(obj){
if(typeof obj !== 'object' || obj == null){
return obj
}
let newObj
obj instanceof Array ? newObj=[] : newObj={}
for(let item in obj){
if(obj.hasOwnProperty(item)) {
newObj[item] = deepClone(obj[item])
}
}
return newObj
}
function deepCopy1(obj){
let a = {}
for(let key in obj){
a[key] = obj[key]
}
return a
}
function deepCopy2(obj){
const newObj = Array.isArray(obj) ? [] : {}
if(obj && typeof obj === 'object') {
for(ley key in obj){
if(obj[key] && typeof obj[key] === 'object'){
newObj[key] = deepCopy2(obj[key])
} else {
newObj[key] = obj[key]
}
}
}
return newObj
}
let obj1 = JSON.parse(JSPN.stringify(obj))
【无标题】
最新推荐文章于 2024-05-17 13:52:13 发布