【js】JS数组复制或克隆新数组修改不影响原数组
前言
有个需求,在修改记录前需要记录下原来的数组内容,为了后续恢复。
准备
网上的很多方法都试过不行,例如。
至于说为什么:
数组存储对象都是存地址的,所以浅复制会导致 a 和 b 指向同一块内存地址;
例如:
则b存储的地址指向了数组[1,2],
如果直接对数组操作,push,pop等,则a,b都会发生变化,因为a和b都指向了堆中的这个数组。
但是假如这样操作,b=[3,4];这个时候发现a没有变化还是[1,2];这是为什么,其实这个不同于刚才的操作,
因为b=[3,4], []是JavaScript的语法糖,new Array();相当于给b重新开辟了堆空间,所以b的地址指向了新的堆地址,而a还是指向之前的地址,所以a和b变得没有关系了。
实施
终于看到一个可以用的!
先把数组转成Json再转回去,先转再转就可以完美避开同时修改的问题了!
参考:
https://blog.csdn.net/qq_40310480/article/details/102941672?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link
https://blog.csdn.net/seaalan/article/details/90081473
https://www.cnblogs.com/gaojian0927/p/9765319.html
__EOF__

本文作者:彬在俊
本文链接:https://www.cnblogs.com/erlou96/p/16878248.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/erlou96/p/16878248.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!