2021-02-07 递归深拷贝

使用递归的方式实现深拷贝,直接写在插件上用,稍微补充一下

//使用递归的方式实现数组、对象的深拷贝
function deepClone1(obj) {
  //判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝
  var objClone = Array.isArray(obj) ? [] : {};
  //进行深拷贝的不能为空,并且是对象或者是
  if (obj && typeof obj === "object") {
    for (key in obj) {
      if (obj.hasOwnProperty(key)) {
        if (obj[key] && typeof obj[key] === "object") {
          objClone[key] = deepClone1(obj[key]);
        } else {
          objClone[key] = obj[key];
        }
      }
    }
  }
  return objClone;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先,有关【递归】的知识请参考上一节,链接地址: 【上一篇】:带你刷LeetCode中的递归算法[http://m...
    每日log阅读 5,048评论 0 2
  • 什么是深拷贝 我们通常所说的深拷贝,通常所说是拷贝对象,而简单基本数据类型,我们拷贝的直接是数据的值,拷贝的数据和...
    彬彬_不安分的人生阅读 1,150评论 0 1
  • 1、浅拷贝## 拷贝就是把父对象的属性,全部拷贝给子对象。接下来,我们看一个拷贝的例子: function ext...
    fullbook阅读 3,593评论 0 3
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,501评论 2 59
  • 什么是深拷贝,什么是浅拷贝 说到深浅拷贝,就不得不提到另外一个知识点,那就是引用类型和基本类型以及堆和栈的区别。再...
    jeff_nz阅读 4,419评论 0 0