很多同学在操作数组和对象的时候,如果只是简单地赋值,就和原来的数据同时发生改变
所以有了深拷贝的需要,话不多说,直接上代码:
export function deepClone (obj) {
let result = Array.isArray(obj) ? [] : {}
for (let key in obj) {
if (obj[key] !== null) {
if (typeof (obj[key]) === 'object') {
result[key] = deepClone(obj[key])
} else {
result[key] = obj[key]
}
} else {
result[key] = null
}
}
return result
}