如何克隆 TypeScript 对象数组?

2024-03-15

我尝试了这种方法:

this.plans = [];
this.plansCopy = [...this.plans];

似乎它不起作用,导致返回重复。


展开运算符返回数组的各个项目。如果这些已经是对象,那么它返回参考到那些物体。这是[]创建新数组的部分。因此你有一个新的数组,但它仍然包含相同的对象引用,所以this.plans[0].oper()将会通知this.plansCopy[0].oper()同时也是如此。

相反,您需要克隆每个单独的对象。有很多不同的方法可以做到这一点(创建数组或单个对象的深层副本)。如果您只需要一级克隆,您可以执行以下操作:

this.plansCopy = this.plans.map(obj => ({...obj}));

这将创建一个新数组,其中每个元素都是每个对象的副本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何克隆 TypeScript 对象数组? 的相关文章

随机推荐