Не уверен, если условие «затем удалите его через 2 секунды, один за другим».не мешает вам перебирать массив
click$.pipe(
filter(notActive),
tap((elements) => elements.forEach(addActiveClass)),
delay(2000),
tap((elements) => elements.forEach(removeActiveClass))
).subscribe();
Если вы не можете, то
click$.pipe(
filter(...)
mergeMap(elements => from(elements)),
tap(addActiveClass)
delay(2000)
tap(removeActiveClass)
).subscribe()
Дополнительно:
Пользователь filter
для этого:
let notActiveElements = [];
for ( let i=0; i < innerBoxes.length; i++) {
if(innerBoxes[i] != event.target) {
notActiveElements.push(innerBoxes[i])
}
}
return notActiveElements;
как: notActiveElements = innerBoxes.filter(box => box !== event.target);
ОБНОВЛЕНИЕ, основано на комментариях
click$.pipe(
filter(...)
concatMap(elements => from(elements).pipe(
tap(addActiveClass),
delay(2000),
tap(removeActiveClass)
))
).subscribe()
Где вы учитесь rxjs
?