Как вы можете сравнить две наблюдаемые, чтобы найти значение не в обоих? - PullRequest
0 голосов
/ 27 мая 2019

У меня есть два observables один - список доступных курсов, а другой - список завершенных курсовых работ. Моя задача - создать список курсов, которые можно пройти дальше. Проблема в том, что, когда я делаю фильтр, я могу найти, где сравнение действительно легко, но я не могу понять, как получить обратный список.

Вот моя текущая функция

public CourseList(): Observable < ICourse[] > {
  return this.CourseworkServ.Read()
    .pipe(
      switchMap((CurrentCourses: IResponseObject < ICourseworkData > ) => {
        return this.CourseServ.Read(this.SelectedDepartment.Id)
          .pipe(
            map((CourseList: IResponseObject < ICourse > ) => CourseList.Array.filter((CheckCourse: ICourse) => CurrentCourses.Array.some(({
              Id,
              Edition,
              Institution,
              Department,
              Course
            }) => CheckCourse.Id === Id)))
          )
      })
    )
}  

Эта функция покажет курсы, взятые из списка курсов, мне нужен список не пройденных курсов. Но если я не могу просто использовать !== в сравнении Id, потому что результат никогда не будет правдой. Мне нужно что-то вроде обратного фильтра или что-то в этом роде. У кого-нибудь есть предложения как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...