【问题标题】:JavaScript : Deep Copy and Clear ObjectJavaScript:深度复制和清除对象
【发布时间】:2017-06-29 15:24:58
【问题描述】:

只要分享一段代码,如果你和我的情况一样,它可能会很有用。当你的对象包含函数时要小心,它们也会被清除(在我的例子中,我没有任何函数,所以我没有真正处理过这个案例)!

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

我在这里发布代码是为了了解您是否在 ES6-7 中有更好的解决方案(它是生产代码和应用程​​序的一个非常重要的部分),或者是同时进行深度复制和清除的不同方法。

【问题讨论】:

  • 能否请您格式化您的问题部分,使其更像一个说明您要做什么的问题?
  • @AndrewLi 我觉得现在好多了,让我知道它是否适合您!感谢您的反馈。
  • @AndrewLi 对不起,有人喜欢在不评论的情况下投反对票..

标签: javascript object ecmascript-6 copy babeljs


【解决方案1】:

这是我的解决方案:

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

【讨论】:

    猜你喜欢
    • 2012-07-03
    • 2015-01-08
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 2013-07-17
    • 2023-03-17
    • 2014-11-03
    • 2018-01-28
    相关资源
    最近更新 更多