JavaScript:深复制和清除对象



只需共享一块代码,如果您与我同样的情况,该代码可能很有用。当您的对象包含功能时,请小心它们也将被清除(在我的情况下,我没有任何功能,所以我没有真正管理此情况!

(!

就我而言,我需要(深(复制一个JSON对象,以在数据库中创建许多国际化文档(MongoDB((每种语言,〜15(。翻译人员将能够填充新的JSON,然后我能够计算进度,以了解翻译是否以100%完成。

我在此处发布代码,以了解您是否有更好的解决方案(这是一个生产代码和应用程序的非常重要的部分(,或者在同一时间进行深层复制和清除的另一种方法。

这是我的解决方案:

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))

最新更新