我有一个这样的模型:
private model:Array<IMyTest> = [];
MyTest有一个成员:
// the testId is auto loaded from a db with a valid number while the isCorrect starts as null
testId:number;
isCorrect: boolean;
我在另一个组件中有一些代码,我想在true或false之间进行isCorrect切换。
所以我写了一个这样的方法,从这个开始:
this.model.filter(q => q.testId === testId) ...
但我想让一个返回集的this.model在为null或false时为true,在为true时为false。
如何正确链接?我已经有一段时间没有做前端的事情了。
/////编辑以下错误答案:
private updateTest(testId:number): void {
this.model = this.model.forEach(q => q.testId === testId && q.isCorrect = !q.isCorrect);
}
我得到的错误是第一个this。类型为void的模型不能分配给类型为MyTest[]和=!q.isCorrect在等号下有一条红线。
如果您要用testId
切换更新项目的isCorrect
,下面是您要做的。
this.model = this.model.map(
q => q.testId === testId ? { ...q,isCorrent:!q.isCorrent } : q
)
如果你不想有一个新的对象(this.model
(,那么它应该是
this.model.forEach(
q => q.testId === testId && (q.isCorrect = !q.isCorrect )
)
过滤器将返回一个带有testId
项目的新对象,之后您必须将其插入回this.model
数组,如果您想将其链接到,则不会是这样