如何在Javascript中深度复制嵌套对象
所以你有一个嵌套对象,假设你需要将其复制到与原始变量完全不同的另一个变量。
我们今天过得怎么样?
原物:
const obj1 = {name: ‘John Smith’, 地址: {mailing: {line1: ‘地址行 1’, line2: ‘地址行 2′, city:’纽约’}}};
复制对象:
方法一:
使用扩展运算符
const obj2 = {…obj1};
方法二:
有些人甚至更喜欢昂贵的操作:
const obj2 = JSON.parse(JSON.stringify(obj1));
方法 1 的问题是扩展运算符在没有引用的情况下复制对象,但它不会对嵌套对象执行此操作,例如为 obj1 的地址键。所以改变 obj2.address.line1 也会改变 obj1.address.line1。
而方法2看起来就是错误且昂贵。
立即学习“Java免费学习笔记(深入)”;
那么我们该怎么做呢?
答案:
const obj2 = StructuredClone(obj1);
现在你已经创建了 obj1 的深层副本,并且 obj1 和 obj2 是完全不同的对象。
注意: StructuredClone() 方法是新推出的方法,可能无法在 2022 年 3 月之前的浏览器中运行。
这是我的第一篇文章。请发表评论并联系,让我知道我可以在下一篇文章中做得更好。
谢谢!!!
以上就是如何在 Javascript 中深度复制嵌套对象的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2670820.html