【发布时间】:2020-09-17 08:15:48
【问题描述】:
您好,我有一个从后端获得的项目列表 listOfPhasesWithTasks。我将它分配给了我在项目的其余部分中使用的局部变量filteredPhasesWithTasks。它应该作为备份工作。当我像这样进行过滤时:
this.filteredPhasesWithTasks.forEach((phase) => {
phase.tasks = phase.tasks.filter(task => task.taskName !== null && task.taskName.toUpperCase().includes(filterParam.taskName.toUpperCase()));
});
我不明白为什么这也会改变我的 listOfPhasesWithTasks。我希望它只会改变 filterPhasesWithTasks 的代码。
【问题讨论】:
-
您可以通过使用
Array.prototype.map并返回新的phase对象而不是像phase.tasks =进行修改来解决此问题。您将对象传播const newPhase = { ...phase };结合过滤器创建新对象,该过滤器也返回一个新数组。 -
你能在 StackBlitz 中创建一些工作示例,包括日期大致是什么样子,然后我可以尝试帮助提供解决方案
标签: html typescript angular7