使用Angular2,将一个Angular模型对象中的一个元素替换为另一个对象



我有一个角度对象。我想用另一个元素替换数组中的整个元素。

    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;
  });
}

相关内容

最新更新