对象deepcopy

Posted yiyitong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象deepcopy相关的知识,希望对你有一定的参考价值。

export const deepCopy = (dst, ori) => {
    let keys = Object.keys(ori)
    keys.forEach((key) => {
      if (typeof ori[key] === ‘object‘) {
        if (Array.isArray(ori[key])) {
          if (!Array.isArray(dst[key])) {
            dst[key] = []
            ori[key].forEach((el) => {
              dst[key].push(deepCopy({}, el))
            })
          } else {
            ori[key].forEach((el, index) => {
              deepCopy(dst[key][index], el)
            })
          }
        }
        else if (ori[key] !== null) {
          dst[key] = {}
          deepCopy(dst[key], ori[key])
        } else {
          dst[key] = null
        }
      } else if (typeof ori[key] === ‘function‘) {
        // do nothing
      } else {
        if (typeof dst === ‘undefined‘) {
          console.info(dst, ori)
        }
        dst[key] = ori[key]
      }
    })
    return dst
  }

  

以上是关于对象deepcopy的主要内容,如果未能解决你的问题,请参考以下文章

Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

对象deepcopy

对象复制帮助类---DeepCopy

手动实现deepcopy

python中的copy.copy和copy.deepcopy

python(41):copy拷贝(深拷贝deepcopy与浅拷贝copy)