js递归实现深拷贝

经过小编之前关于JavaScript深拷贝实现方式的介绍,大家已经知道深拷贝能够实现真正意义上的数组和对象的拷贝。其实使内置对象JSON虽然简答,但不能将对对象的方法深拷贝,因此使用递归的方式就是最实用的,本文介绍使用递归的方式实现深拷贝的原理及具体实现。

1、实现原理:

使用递归的方式实现数组、对象的深拷贝。

先判断各个字段类型,然后用递归解决嵌套数据。

判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝。

进行深拷贝的不能为空,并且是对象或者是数组。

2、具体实现:

functiondeepClone(obj){
  letobjClone=Array.isArray(obj)?[]:{};
  if(obj&&typeofobj==='object'){
    for(letkeyinobj){
      if(obj[key]&&typeofobj[key]==='object'){//判断对象的这条属性是否为对象
        objClone[key]=deepClone(obj[key]);//若是对象进行嵌套调用
      }else{
        objClone[key]=obj[key]
      }
    }
  }
  returnobjClone;//返回深度克隆后的对象
}
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容