• 技术文章 >Web开发 >JavaScript

    js递归实现深拷贝

    宋雪维宋雪维2021-01-11 15:08:51原创3000

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

    1、实现原理:

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

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

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

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

    2、具体实现:

    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; //返回深度克隆后的对象
    }

    以上就是使用递归的方式实现深拷贝的原理及具体实现,希望能对你有所帮助。更多js学习推荐:js教程

    专题推荐:js递归实现深拷贝
    上一篇:js如何深拷贝一个对象 下一篇:js浅拷贝的方法

    相关文章推荐

    • python中glob库是什么?• python中的win32com库是什么?• Python异常输出美化工具PrettyErrors如何使用?• python如何将九九乘法表写入到Excel?• python中ruamel.yaml模块是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网