javascript - Filtrera på rätt sätt ett observable av en array med objekt baserat på om en viss egenskap på varje index är sann?


Så jag har en Observable av typen Student[]. Det vill säga en observable av en array av objekt. Student har en egenskap id: number. Hur filtrerar jag bort index i studentarrayen baserat på en egenskap. Till exempel, låt oss säga att students$är en observable av typen Observable[Student] och jag skulle vilja ta bort en student från Observable<Student[]> baserat på deras "bannedId", jag försökte:

students$.filter(student => student.id !== bannedId)

men jag fick felet att id inte är en egenskap hos Student[]. Om jag anger ett index t.ex. student[0].id så känner den igen egenskapen men gör uppenbarligen inte vad jag vill. Hur skulle jag gå tillväga för att filtrera detta?

Svar #1

Har du försökt med Observable.map(...)?

students$.map(studentList => studentList.filter(student => student.id !== bannedId))

Det skapar en ny Observable på vilken du kan förvänta dig att elementen inte har ett studentobjekt med det förbjudna ID:t.

Relaterade artiklar