gpt4 book ai didi

javascript - Angular 2 神秘地修改具有相同值的对象内的所有子嵌套相似对象

转载 作者:行者123 更新时间:2023-11-27 23:04:40 24 4
gpt4 key购买 nike

https://plnkr.co/edit/YyTPVQ?p=preview 的示例所示(加载应用程序后,单击左侧栏上的任何名称)

如果我修改任何用户的比例,它也会修改其他用户。

不要问我为什么,但是,我设法通过删除所有 .map 和 .js 文件来修复它,将修复提交给 git,今天早上醒来,现在它又不起作用了(是的,这是一个奇迹听起来!)https://github.com/thurft/appraisal

我的问题如下 employees.component.ts 处理 employees.component.html

的逻辑

当我对一个问题进行评分时,它会修改所有 this.employee 的同一问题,而不是仅针对 这个。选定的员工。这将被触发 updateQuestionRequest(question) 并且有一个 console.log(this.employees) 来显示正在修改的对象。

我绝不会修改 this.employees 数组,因此 Angular 以某种方式知道它需要修改数组中的对象。但它也会修改该数组中具有相同问题的所有对象。

问题是:如何将 selectedEmployee 评分的问题保存在 selectedEmployee OBJ 中,而不是在所有员工 OBJ 中保存的值?

我无法判断这是 Angular 上的错误还是我的代码中的问题,因为有时它可以工作,有时则不能,并且没有一致性。

最佳答案

您必须克隆TECHNICALQUESTIONS,否则所有员工将共享相同的引用:

employee[i].technicalQuestions = TECHNICALQUESTIONS.map(_=>{return Object.assign({}, _)};);

关于javascript - Angular 2 神秘地修改具有相同值的对象内的所有子嵌套相似对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com