我尝试了这种方法:
this.plans = [];
this.plansCopy = [...this.plans];
似乎它不起作用,导致返回重复。
展开运算符返回数组的各个项目。如果这些已经是对象,那么它返回参考到那些物体。这是[]
创建新数组的部分。因此你有一个新的数组,但它仍然包含相同的对象引用,所以this.plans[0].oper()
将会通知this.plansCopy[0].oper()
同时也是如此。
相反,您需要克隆每个单独的对象。有很多不同的方法可以做到这一点(创建数组或单个对象的深层副本)。如果您只需要一级克隆,您可以执行以下操作:
this.plansCopy = this.plans.map(obj => ({...obj}));
这将创建一个新数组,其中每个元素都是每个对象的副本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)