位置: IT常识 - 正文

js中对象数据类型的深拷贝方法(5种)(js对象数据类型有哪些)

编辑:rootadmin
js中对象数据类型的深拷贝方法(5种)

目录

一、使用JSON暴力转换

二、 使用拓展运算符+解构赋值

三、 使用对象的合并,即通过Object.assign()方法

四、通过遍历对象

五、利用循环递归


一、使用JSON暴力转换

推荐整理分享js中对象数据类型的深拷贝方法(5种)(js对象数据类型有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js中对象数据类是什么,js中对象数据类有哪些,js对象类型的语法规则,js 对象数组方法,js中对象数据类有哪些,js中对象数据类有哪些,js对象数据类型有哪些,js中对象数据类是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

js中对象数据类型的深拷贝方法(5种)(js对象数据类型有哪些)

        通过JSON.stringify() 和 JSON.parse() 将对象转为字符串之后在转为对象。

var obj = {name:'123'};var obj2 = JSON.parse(JSON.stringify(obj))二、 使用拓展运算符+解构赋值

        该方法的局限性在于,当值为undefined、function、symbol会在转换过程中被忽略。

var obj = {name:'123',age:13};var obj2 = {...obj}三、 使用对象的合并,即通过Object.assign()方法

        注意:该方法的第一个参数必须是空对象

var obj = {name:'123',age:13};var obj2 = Object.assign({},obj);四、通过遍历对象var obj1 = {name:"123"};var obj2 = {};for(x in obj1) { obj2[x] = obj1[x];}五、利用循环递归

        以上四种方法只能进行一层拷贝,即当对象的属性值也是对象时,就无法实现该属性的深拷贝,在这里提供一种利用循环递归进行深拷贝的方法。

var obj = { name: "123", sex: { age: "小花" } }; var newObj = {}; function deepClone(obj, newObj) { var newObj = newObj || {}; for (let key in obj) { if (typeof obj[key] == 'object') { newObj[key] = (obj[key].constructor === Array) ? [] : {} deepClone(obj[key], newObj[key]); } else { newObj[key] = obj[key] } } return newObj; } console.log(deepClone(obj, newObj));//{name: "123",sex: {age: '小花'}}
本文链接地址:https://www.jiuchutong.com/zhishi/297710.html 转载请保留说明!

上一篇:基于pyecharts的中医药知识图谱可视化(pyecharts怎么用)

下一篇:火爆全网的ChatGPT让AI回答你的任何问题!国内免费用!!(火爆全网的头像男)

  • 草根站长怎样做电子商务(草根cms)

  • iwatch丢失怎么看最后的定位

  • b站小窗口模式在哪里设置(b站小窗口模式在哪里设置ipad)

  • 搜狗糖猫儿童手表使用教程(搜狗糖猫r1)

  • 关闭屏幕使用时间(关闭屏幕使用时间什么意思)

  • qq活跃头衔可以升级吗(qq的活跃头衔)

  • realmex50pro是什么芯片呢(realme x50 pro 是什么牌手机)

  • 抖音评级申诉不通过该怎么办(抖音评级无申诉入口如何解封)

  • 长时间关机影响手机吗(长时间关机影响电池吗)

  • 魅族手机总是自动静音怎么回事(魅族手机总是自动开机)

  • 苹果换新电池怎么激活(苹果换新电池怎么保养)

  • 手机会中病毒么(怎么判断手机中病毒了)

  • 为什么苹果手机屏幕失灵什么都按不了(为什么苹果手机充电充不进去了)

  • 电脑背景变成黑色的了是为什么(电脑背景变成黑色了如何调回正常)

  • 淘宝四心多少分(淘宝4心到5心要多少单)

  • 苹果11怎么设置个人热点(苹果11怎么设置来电闪光灯)

  • 8p无服务是什么原因(iphone 8p 无服务)

  • 天猫精灵要一直连着电么(天猫精灵要一直充电才能使用吗)

  • 苹果怎么设置点屏幕才亮(苹果怎么设置点三下截图)

  • 小米手环怎么检测睡眠(小米手环怎么检测快速眼动)

  • 抖音为什么删不了评论(抖音为什么删不了评论了)

  • 华为荣耀9i有人脸识别吗(荣耀9iemui)

  • nex3有没有无线充电nex3有没有无线充电(vivo手机nex3支持无线充电吗)

  • 被删除的短信怎样恢复(被删除的短信怎么恢复oppo)

  • 怎么把文章发到朋友圈(怎么把文章发到qq邮箱)

  • 为dedecms织梦模板发布文章添加禁用词语过滤功能(织梦使用教程)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络