如果你和我在同一个案例中,只需分享一段可能有用的代码。当你的对象包含函数时要小心,它们也会被清除(在我的情况下,我没有任何功能,所以我没有真正管理过这个案例)!
在我的情况下,我需要(深度)复制JSON对象以在数据库中创建许多国际化文档(MongoDB)(对于每种语言,~15)。翻译人员将能够填写新的空JSON,然后我将能够计算进度以了解翻译是否以100%完成。
我在这里发布代码,以了解ES6-7中是否有更好的解决方案(它是生产代码和应用程序的一个非常重要的部分),或者是同时深度复制和清除的不同方法。
答案 0 :(得分:0)
这是我的解决方案:
const obj = {
champ1: 'test',
champ2: 'test',
champ3: {
ch: 'test',
test: 'test'
}
}
function copyAndClearObject (obj) {
if (!obj) return
let json = {}
for (const [key, value] of Object.entries(obj)) {
if (value instanceof Object) {
json[key] = copyAndClearObject(value)
} else {
json[key] = null
}
}
return json
}
console.log(copyAndClearObject(obj))