当前位置: 首页 > news >正文

递归实现深拷贝

hashMap部分解决对象循环引用问题

var obj = { name: 'Jack', test: function () { console.log('obj'); }, zero: 0, hobby: [null, undefined, 0, 'haha'] } function copy (source, hashMap = new WeakMap()) { //判断是否已经拷贝过 if (hashMap.get(source)) return hashMap.get(source) /* 实现方式一 // 获取source数据类型 const type1 = ((Object.prototype.toString.call(source)).split(' ')[1]).slice(0,-1) let target; switch (type1) { case 'Object': target = {} break; case 'Array': target = [] break; } */ //实现方式二 let target = new source.constructor() hashMap.set(source, target) for (const key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { const element = source[key]; const type = ((Object.prototype.toString.call(element)).split(' ')[1]).slice(0,-1) if (type == 'Object') { target[key] = copy(element,hashMap) } else if (type == 'Array') { target[key] = copy(element,hashMap) } else target[key] = element } } return target } let o =copy(obj) //循环引用 let test1 = {},test2 = {}; test1.test2 = test2 test2.test1 = test1 console.log(copy(test2));
http://www.jsqmd.com/news/475531/

相关文章:

  • SQL语句格式和案例整理
  • LNMP 网站架构与部署全攻略:从零基础到上线运行
  • 防爆自动气象站:高危环境中的“安全卫士”
  • 优学宝V2.0:一套系统搞定所有知识付费场景,多商户+全功能+在线刷题,强得离谱!
  • 2026年工厂电动扫地车品牌推荐:高效清洁设备实用指南 - 品牌排行榜
  • [算法][力扣350]两个数组的交集2
  • 总结一下我最近几个月 vibe coding 的开源项目
  • [特殊字符] 从大脑到实体:LLM 与 AI Agent
  • 超好用的SQL转ER 图、时序图、功能模块图在线工具
  • 管道和消息队列
  • 婴儿监护婴幼儿姿势识别婴儿行为状态检测数据集VOC+YOLO格式3143张6类别
  • 企业网盘,团队协作的「文件中枢」
  • 三电平有源电力滤波器仿真探索
  • Paperiii 官网入口:www.paperiii.com——拒绝盗版冒牌网站
  • 智普版“澳龙“AutoClaw来了,百花齐放!0元养虾!
  • RGB-Mini LED 成百吋赛道新标尺,海信凭什么领跑客厅WALL时代?
  • BioCredProv.dll文件彻底修复方法 附免费的下载解决办法
  • 分布式驱动电动汽车十四自由度动力学模型的联合仿真探索
  • Onnxruntime之多个EP类型
  • 光学超结构
  • opencv 多项式插值亚像素边缘点
  • 关于智榜样学习过程中1day漏洞的学习心得
  • 给 OpenClaw 装上私有搜索:SearXNG + MCP 替代 Brave API
  • 大专商务数据分析与应用专业考哪些证书比较好找工作?
  • 看不懂,第一次发布
  • OOMKilled、CrashLoopBackOff、ImagePullBackOff 原因
  • 计算机毕业设计springboot基于java的音乐网站设计与实现 基于SpringBoot的在线音乐流媒体播放平台开发 高校校园音乐分享与歌单管理系统的设计与实现
  • 人工智能求职指南(职业规划)
  • JeechBoot前端设置表格内自定义元素
  • 无线模块ESD整改与抗干扰设计:提升连接可靠性的关键