前言
深度拷贝是面试经常遇见的代码题,日常开发中都使用JSON.parse(JSON.stringify()),今天抽空写了个方法,供大家参考。
先上代码,拿去直接用
function deepCopy(obj) {
let result = {}
if(typeof obj !== 'object') {
return obj
}
Object.keys(obj).forEach(key => {
result[key] = deepCopy(obj[key])
})
return result
}
测试一下:
let obj = {
a: {
b: 2,
},
};
let copyObj = deepCopy(obj)
console.log(copyObj) // { a: { b: 2 } }
copyObj.a.b = 3
console.log(obj) // { a: { b: 2 } }
console.log(copyObj) // { a: { b: 3 } }