python深拷贝实现原理,js递归实现深拷贝

f684166dd2c50268d52cdef7f3fa519f.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梅宏院士:操作系统变迁有20年周期律,泛在计算是一片新蓝海

梅宏来源:观察者网作者:梅宏院士中国科学院院士、发展中国家科学院院士、欧洲科学院外籍院士、IEEE FELLOW,中国计算机学会理事长,北京大学信息技术高等研究院智能软件技术与应用研究中心首席科学家。信息技术发展正在进入人机物融…

IEEE CS:2021年的12大技术趋势

来源:笑看国际风云LOS ALAMITOS, Calif., 16 December 2020 – IEEE计算机协会(IEEE CS)公布了其2021技术预测报告(2021 Technology Predictions),重点关注大流行对人类生活,供应链,…

jsp内置对象--application

appliation 全局对象 String getContextPath():虚拟路径 String getRealPath(虚拟路径):绝对路径(虚拟路径 相对的绝对路径)

D1 模拟赛

T1 note 数组开小 菜的真实 60分 题目大意&#xff1a; 一个字符串 分成若干段 使每段内都没有重复的字符 求最少的段数 思路&#xff1a; 可以贪心 1 #include<iostream>2 #include<cstdio>3 #include<cmath>4 #include<cstdlib>5 #include<cstrin…

模仿人脑视觉处理,助力神经网络应对对抗性样本

来源&#xff1a;混沌巡洋舰自从深度学习只能识别支票和信封上的手写字母以来&#xff0c;它已经取得了长足的进步。今天&#xff0c;深度神经网络已经成为许多计算机视觉应用的关键组成部分&#xff0c;从照片和视频编辑器到医疗软件和自动驾驶汽车。神经网络大致模仿了大脑的…

电子很可能具有意识

© Olhar Digital来源&#xff1a;利维坦文&#xff1a;Tam Hunt译&#xff1a;猫大郎校对&#xff1a;兔子的凌波微步2020年5月&#xff0c;“宇宙有意识吗&#xff1f;”作为标题出现在《新科学人》&#xff08;New Scientist&#xff09;周刊的一期封面上。德国慕尼黑数…

JDBC--Java Database Connectivity

1.JDBC:Java DataBase Connectivity 可以为多种关系型数据库DBMS 提供统一的访问方式&#xff0c;用Java来操作数据库 2.JDBC API 主要功能&#xff1a; 三件事&#xff0c;具体是通过以下类/接口实现&#xff1a; DriverManager &#xff1a; 管理jdbc驱动 Connection&#x…

数字孪生:连结现实与数字世界

作者&#xff1a;德勤洞察来源&#xff1a;《软件与集成电路》2020年第5期试想一下&#xff0c;你拥有一个现实世界的完美数字副本&#xff1a;数字孪生。它可以帮助你开展虚拟协作&#xff0c;快速获取传感器数据并模拟条件&#xff0c;清楚地了解假设情景&#xff0c;更能精准…

微软和谷歌的人工智能,在SuperGLUE基准测试中超越了人类

大数据文摘出品来源&#xff1a;venturebeat编译&#xff1a;千雪2019年底&#xff0c;Facebook、纽约大学、华盛顿大学和DeepMind的研究人员联合提出了SuperGLUE&#xff0c;这是人工智能的一个新基准&#xff0c;旨在总结多种语言任务的研究进展。基于一年前推出的GLUE基准&a…

2020年度中国生命科学十大进展公布 | 中国科协生命科学学会联合体

来源&#xff1a;中国科协生命科学学会联合体本年度的评选&#xff0c;联合体成员学会推荐的项目较往年数量明显增加&#xff0c;体现了“中国生命科学十大进展”评选日臻完善&#xff0c;社会影响力与关注度不断扩大&#xff1b;获奖项目中非院士主导项目所占比例较往年大&…

百度研究院发布2021年十大科技趋势预测

来源&#xff1a;百度智能云作者&#xff1a;刘瑾疫情加速 AI 融合落地AI 将更加深入大众生活2020年&#xff0c;全球抗疫促使 AI 与 5G、大数据、物联网等新一代信息技术相互融合&#xff0c;AI 测温、AI 问诊、智能外呼、服务机器人等创新应用开始大规模普及&#xff0c;从生…

欧阳自远:有个性的嫦娥12345,如何不重复美国探月路?

来源&#xff1a;澎湃新闻 作者&#xff1a;虞涵棋“很多事情人家都做过了&#xff0c;中国也不得不做&#xff0c;唯一的要求就是一定要比别人做的好。但总有一两样没人没干过的事&#xff0c;中国一定要干。”1月13日&#xff0c;中国月球探测工程首席科学家、中科院院士欧阳…

linux安装DNS服务命令,Linux下的安装和配置DNS服务器

Linux下的安装和配置DNS服务器发布时间&#xff1a;2008-09-08 17:03:00 作者&#xff1a;佚名 我要评论在Linux操作系统中使用BIND (Berkeley Internet Name Daemon)作为DNS服务器&#xff0c;以下以Linux 的Redhat 7.3发行版本为例&#xff0c;介绍BIND安装、启动和停止…

【转】java反射--注解

【译】8. Java反射——注解 原博地址&#xff1a;https://www.cnblogs.com/penghongwei/p/3300087.html翻译原文地址&#xff1a;http://tutorials.jenkov.com/java-reflection/annotations.html 使用Java反射机制&#xff0c;在运行时你可以访问到Java类中所附属的一些注解。…

多核之后,CPU 的发展方向是什么?中科院计算所包云岗详细解读

来源&#xff1a;知乎作者&#xff1a;包云岗包云岗&#xff0c;中国科学院计算技术研究所研究员、博士生导师、中国科学院大学教授&#xff0c;中国开放指令生态&#xff08;RISC-V&#xff09;联盟秘书长&#xff0c;从事计算机体系结构和开源芯片方向前沿研究&#xff0c;主…

jsp--JavaBean

Java最好和jsp的代码分开写 但是jsp中会有很多内置对象&#xff0c;例如response 涉及到内置对象的代码在Java中自然是错误的&#xff0c;那么该怎么办&#xff1f; 可以将需要调用的Java方法设置几个参数&#xff0c;jsp将内置对象作为参数传过去 Javabean作用&#xff0c;…

weblogic作为linux服务器,weblogic在linux服务器上部署应用

SSH软件连接服务器&#xff1a;服务器地址&#xff1a;xxx.xxx.xxx.40用户名&#xff1a;xxxx密码&#xff1a;xxxx新建文件夹&#xff0c;用来放新代码版本&#xff0c;后面为代码版本号路径&#xff1a;/home/weblogic命令&#xff1a;mkdir wzgcyth_xxxx部署war包拖拽war到路…

几乎无解的最强加密方法,终于被证实真的存在

来源&#xff1a;数学中国图片来源&#xff1a;Kiel Mutschelknaus for Quanta Magazine2018年&#xff0c;加州大学洛杉矶分校的研究生Ayush Jain前往日本&#xff0c;就他和同事正在开发的强大加密算法进行交流。当他讲述团队正在尝试实现不可区分混淆&#xff08;indistingu…

css3布局篇(双飞翼)

大家看到好多电商网站都见过经典三列布局&#xff0c;它也叫做圣杯布局 &#xff0c;是Kevin Cornell在2006年提出的一个布局模型概念&#xff0c;这个在国内最早是由淘宝UED的工程师传播开来&#xff0c;在中国也有叫法是双飞翼布局&#xff0c;它的布局要求有以下的几点&…

Servlet介绍

Servlet&#xff1a; Java类必须符合一定的规范&#xff1a; 1.必须继承javax.servlet.http.HttpServlet 2.重写其中的doGet()或doPost()方法 doGet():接受并处理所有get提交方式的请求 doPost():接受并处理所有Post提交方式的请求 Servlet要想使用&#xff0c;必须配置 …