栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

js递归实现深拷贝

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

js递归实现深拷贝

经过小编之前关于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教程。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/14620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号