跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何在 Javascript 中深度复制嵌套对象

如何在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 月之前的浏览器中运行。

这是我的第一篇文章。请发表评论并联系,让我知道我可以在下一篇文章中做得更好。

谢谢!!!

相关文章