我有一个角度对象。我想用另一个元素替换数组中的整个元素。
export interface modelCourse{
var1: number;
var2: number;
}
我想做这样的事情:
updateResults(myCourse: modelCourse) {
this.allCourses.forEach(element => {
if (myCourse.Id=== element.Id) {
element = myCourse; // this part doesn't work as expected
}
});
}
其中
allCourses: modelCourse[] = [];
和Allcourses拥有我的所有课程。
如果您只需要找到一个匹配元素,则无需循环浏览所有元素,只需使用findIndex
方法即可。这找到了您所需的一个元素的索引,而无需通过所有元素。
您可以使用该索引更新原始数组。
updateResults(myCourse: modelCourse) {
const foundElementIndex = this.allCourses.findIndex(element => myCourse.id === element.id);
this.allCourses[foundElementIndex] = myCourse;
}
我在这里做了一个stackblitz:https://stackblitz.com/edit/angular-hxxddn
请使用Array.map
更新this.allCourses
。
updateResults(myCourse: modelCourse) {
this.allCourses = this.allCourses.map(element => {
if (myCourse.Id === element.Id) {
return myCourse;
}
return element;
});
}