function clone(obj) {
if (Array.isArray(obj)) {
let obj1 = []
for (const key in obj) {
obj1[key] = (clone(obj[key]))
}
return [...obj1]
} else if (typeof obj == 'object') {
let obj1 = {}
for (const key in obj) {
obj1[key] = clone(obj[key])
}
return { ...obj1 }
}
else
return obj
}
//测试1
var furn = {
size: '10',
msg: {
size: '100',
msg: {
size: '1000'
}
}
};
let copyfurn = clone(furn)
furn['msg']['size'] = '200'
console.log(furn);
console.log(copyfurn);
//测试2
var furn2 = [[[{ a: { b: 1 } }, { c: { d: 2 } }]]]
let copyfurn2 = clone(furn2)
furn2[0][0][1]['c']['d'] = 4
console.log(furn2[0][0][1]['c']['d'] === copyfurn2[0][0][1]['c']['d']);
javascript 深度拷贝
最新推荐文章于 2024-04-26 16:47:03 发布