js函数递归实现数据深拷贝

  • 数据 对象obj是一个复杂数据类型
 const obj = {
        name:'2323',
        age:15,
        sex:'男',
        friend:[
            {
                name:'lili',
                age:12,
                sex:'女'
            },
            {
                name:'haha',
                age:2,
                sex:'女'
            },
        ]
    }
  • deepCopy函数递归实现obj数据的深拷贝
 function deepCopy(newObj,oldObj) {  //(新数据,被拷贝数据)
      for(key in oldObj){
            if(Array.isArray(oldObj[key])){
                // 如果数据类型是数组,必须写在最上面,
               // 因为 ( [1,2] instanceof Object === true)
                newObj[key] = []
                deepCopy(newObj[key],oldObj[key])
            }else if(oldObj[key] instanceof Object){
                //如果数据是对象类型
                newObj[key] = {}
                deepCopy(newObj[key],oldObj[key])
            } else{
                //数据是基本数据类型
                newObj[key] = oldObj[key]
            }
        }
        return newObj
    }

deepCopy(o,a)
console.log(o)  //深拷贝完成,并且deepCopy(o,a)的值就是o的值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容