码迷,mamicode.com
首页 > 其他好文 > 详细

对象deepcopy

时间:2018-10-23 21:06:54      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:javascrip   return   index   ons   null   const   div   eof   ==   

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

标签:javascrip   return   index   ons   null   const   div   eof   ==   

原文地址:https://www.cnblogs.com/yiyitong/p/9837993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!