我有两个对象的数组:
genericItems: Item[] = [];
backupData: Item[] = [];
我正在用 genericItems
数据填充我的 HTML 表。该表是可修改的。有一个重置按钮可以撤消使用 backUpData
完成的所有更改。此数组由服务填充:
getGenericItems(selected: Item) {
this.itemService.getGenericItems(selected).subscribe(
result => {
this.genericItems = result;
});
this.backupData = this.genericItems.slice();
}
我的想法是,用户更改将反映在第一个阵列中,第二个阵列可以用作重置操作的备份。我在这里面临的问题是当用户修改表时( genericItems[])
第二个数组 backupData
也被修改了。
这是如何发生的以及如何防止这种情况发生?
原文由 Arun 发布,翻译遵循 CC BY-SA 4.0 许可协议
克隆一个对象:
const myClonedObject = Object.assign({}, myObject);
克隆一个数组:
const myClonedArray = Object.assign([], myArray);