深度拷贝(递归)

深拷贝的运用场景 :首先我们创建一个文件 要传输给后台的数据格式,然后拷贝要传输给后台参数的文件,因为需要多次调用,避免修改原数据

function deepClone(obj){
  let objClone = Array.isArray(obj) ? [] : {};        判断是对象还是数组
  if (obj && typeof obj === 'object') {       判断数据类型  如果是对象的话进行循环
    for(let key in obj){   循环对象
      if (obj[key] && typeof obj[key] === 'object'){  判读对象中是否有嵌套
        objClone[key] = deepClone(obj[key]);   对象调用自己继续循环
      }else{
        objClone[key] = obj[key]    添加到对象中
      }
    }
  }
  return objClone;  返回对象
}

 

posted @ 2021-04-08 10:40    阅读(206)  评论(0)    收藏  举报