位置: 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回答你的任何问题!国内免费用!!(火爆全网的头像男)

  • 个体工商户开劳务发票税率
  • 建筑业的增值税税负
  • 财产租赁合同印花税计税依据含税吗
  • 已认证的专票发票在哪里
  • 安装服务费发票需要备注地址吗
  • 递延所得税资产计算公式
  • 待报解预算收入计入什么科目
  • 新会计准则中计提减值如何回转
  • 购货发票属于外来原始凭证吗为什么
  • 出口没做免税申报怎样补税?
  • 其他应收款直接计入营业外收入
  • 应收账款处置损益
  • 生产用的软件
  • 增值税税率零税率
  • 保险合同有啥用
  • 金三打印客户端插件如何下载?
  • 营改增来了!会计人应如何自处
  • 上个月没有报个税这个月一起报
  • 核定征收的企业不能弥补亏损
  • 收到应收票据应该确认收入吗
  • windows10显示未激活怎么办
  • bios里硬盘是哪个
  • 城市生活垃圾处理方法
  • 接入设备检测
  • php 生成验证码
  • 微软 windows11
  • 未办理装修手续
  • php字符串处理函数
  • .exe是什么软件
  • msmpeng.exe 是什么
  • 贷款核销对个人的影响
  • 报销费用填制什么凭证
  • 质量事故责任书
  • framework启动
  • 结转代销成本
  • 委托研发技术合同登记
  • 非常好看的头像
  • 复制/root/install.log到/tmp
  • php ajax
  • mysqld_safe mysqld from pid
  • 人力资源企业税收风险
  • 应收账款计提减值准备的方法
  • 车辆购置税是税前还是税后
  • 其他收益放在哪里
  • 高新企业做账有什么不同
  • 进项税额抵减额怎么算
  • 短期投资理财是
  • 房地产拆迁补偿协议
  • 个体户开电子发票怎么申请
  • 固定资产核算应包括什么
  • 小规模纳税人的条件
  • 合同资产和合同履约成本的区别
  • 开具专票需要哪些材料
  • 事业单位利息收入的正确分录
  • 收到对公打款认证怎么入账
  • 委托加工科目有余额嘛
  • 医疗器械销售能一年挣一百万么
  • 免税收入怎么做分录
  • mysql 生成guid
  • server2012打开sqlserver
  • mysql如何修改默认值
  • Linux虚拟机下mysql 5.7安装配置方法图文教程
  • ubuntu20.10
  • w8系统怎么用
  • win1020h2正式版
  • win102021年1月大更新
  • win7桌面图标靠右
  • ExtJS 2.0实用简明教程 之Ext类库简介
  • ant压缩包删除
  • 老生常谈的道理
  • 初识年岁尚温柔 小说 免费
  • 批处理显示
  • 用python操作excel
  • unity3d操作
  • PreferenceActivity、PreferenceFragment使用
  • jquery显示div
  • jquery form validate
  • 云南发票网站
  • 上海房产税税收
  • 江苏地方税务局电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设