js赋值后 改变现有数据会修改原来的数据的解决办法
来,先看问题。
let obj1 = {name: '张三',age: 18,sex: '男'}let obj2 = obj1console.log('obj2:', obj2)obj2.age = 22console.log('obj2:', obj2)console.log('obj1:', obj1)
打印结果:
可以发现,obj1的age也跟着发生了变化,这是因为obj2 = obj1这种赋值的方法是浅拷贝,原来的值发生变化,被赋值的值也会随之发生变化。那么应该怎么赋值后 改变obj2时不会改变obj1的值呢。
赋值时先把obj1转化为JSON字符串,然后再转化为JSON对象再赋值给obj2即可。
将
let obj2 = obj1
改为
let obj2 = JSON.parse(JSON.stringify(obj1))
即可,再看打印结果。
问题解决啦!
js赋值后 改变现有数据会修改原来的数据的解决办法相关推荐
- js赋值后 改变现有数据会修改原来的数据
看代码: let obj1 = {name: '张三',age: 18,sex: '男'}let obj2 = obj1console.log('obj2:', obj2)obj2.age = 22c ...
- [前台]---js重复上传一张图片两次,第二次失败的解决办法和思路
js重复上传一张图片两次,第二次会失败,解决办法就是修改input的value值. 先上代码: <input style="display:none" type=" ...
- js文件中发送ajax请求,ulr路径不起作用的解决办法
前言: 在写Python项目的时候,单独的js文件发送ajax请求,并不起效果并且提示路径错误 错误原因分析: {% url 'myadmin_updategoodsgrade' %} # 是模板中的 ...
- Keil5使用AC6编译后,生成bin文件变为生成文件夹的解决办法
Keil5使用AC6编译后,生成bin文件变为生成文件夹的解决办法 KEIL AC5到AC6需要注意的地方 从AC5移植到AC6 解决流程 关键步骤 最近同事咨询改用keil的最新版本编译器编译原来的 ...
- NRF51822 烧录bootloader 后,需要OTA一次,才能启动App解决办法
Nordic 51822 烧录bootloader 后,需要OTA一次,才能启动App解决办法 使用nrfjprog烧写寄存器标志位 nrfjprog --memwr 0x3FC00 --val 0x ...
- 小米Pro15安装Ubuntu20.04LTS后Window10的时间提前了8小时 , 的解决办法 2021-03-04 16:50
小米Pro15安装Ubuntu20.04LTS后Window10的时间提前了8小时 小米Pro15安装Ubuntu20.04LTS后Window10的时间提前了8小时 问题 原因 解决办法 总结 问题 ...
- SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)
SqlService基础知识总汇 前言 一.SQLSERVER建库建表 1.检查数据库名是否存在 2.创建数据库 3.建表 4.修改表结构 5.删除添加约束 二.SQLSERVER插入数据 1.向部门 ...
- 如何修改游戏服务器端的数据,如何修改网络游戏服务器数据
如何修改网络游戏服务器数据 内容精选 换一换 排查安全组规则.排查网络ACL.排查弹性云服务器内部网卡信息.排查不通端口.相同,请查看同一个VPC内的两台弹性云服务器无法互通或者出现丢包等现象时,如何 ...
- excel服务器数据同步修改,excel表格数据同步修改-关于excel不同表格(不同工作簿)之间数据同步修改......
EXCEL表格文档如何数据同步更新 excel中让两份表格实现数据同步的具体步骤如下: 首先打开计算机,在计算机桌面找到excel软件,鼠标左键双击excel的快捷方式以打开软件.然后打开需要进行数据 ...
最新文章
- git commit 提交的时候报错husky > pre-commit hook failed (add --no-verify to bypass)(解决办法)
- linux pci 寄存器,Linux 内核 标准 PCI 配置寄存器
- Integer对象范围(-128-127)之间(Integer. valueOf()方法)
- Java中的三态布尔值
- 数据多重共线性_多重共线性对您的数据科学项目的影响比您所知道的要多
- POJ 3694 Network
- win8服务器无法安装win7系统安装,win8怎么安装win7 win8改win7教程详解【图文】
- 【C语言重点难点精讲】C语言中的重要符号
- hadoop运行wordcount实例,hdfs简单操作
- java强制关闭远程桌面_elasticsearch中的java.io.IOException: 远程主机强迫关闭了一个现有的连接...
- Matlab--Monte Carlo simulation
- 网站集搜索中心的搜索页面对应路径:
- java io .log_namenode无法启动:java.io.FileNotFoundException: .log (Permission denied)
- 计算机图形学笔记 (第一周)
- 【探路者】第三周立会报告5(总第17次)
- 如何查看系统中的木马
- 计算机用户无法删除文件,教你几招解决电脑上的文件夹删不掉怎么办?
- OpenAI Whisper论文笔记
- 我的健康我做主”芋头有奇特功效-抗…
- Android中TextView加横线的属性
热门文章
- Git与SVN的区别Git常用命令
- flutter 加载图片
- 5分钟学会神器frp内网穿透
- DNSPod十问周康:如何成为办公硬件领域的乔布斯?
- android 制作用户头像,android 切换头像功能实现
- golang笔记16--go语言并发版爬虫
- Angular4 - Rxjs基础
- 手动一步一步来制作备份Raspberry Pi树莓派SD卡的img映像文件(不用dd命令,已测试通过)
- Windows Mobile 开发总结
- SpringBoot @ManyToOne @OneToMany JoinColumn mappedBy