Как превратить наблюдаемый массив в массив наблюдаемых (RxJS)

63
6

Кажется, люди когда-либо испытывают трудности с превращением массива наблюдаемых в наблюдаемый массив, а не наоборот.

Итак, учитывая наблюдаемый

 Observable<Result[]>

как мне получить

Observable<Result>[]  to   Observable<Result>[]

Проблема связана с тем, что я получил наблюдаемые предметы

items$: Observable<Item[]>

с

Item: {
value: number,
...
};

где value может принимать дискретные значения, например

values = [1, 2, 3]

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

Поэтому я пошел дальше и сделал следующее сопоставление

items$.map(items => values.map(value => 
({ value, items: items.filter(item => item.value === value) }))

который дает

 Observable<{ value: number, items: Item[] }[]>

Однако для того, чтобы назначить каждое значение его компоненту, мне нужно

 Observable<{ value: number, items: Item[] }>[]

Как туда попасть?

спросил(а) 2021-01-25T18:27:09+03:00 4 месяца, 2 недели назад
1
Решение
63

Просто небольшое изменение в вашем коде:

values.map(value =>
items$.map(items =>
({ value, items: items.filter(item => item.value === value) })
)
)

оператор map фактически создает новую наблюдаемую

ответил(а) 2021-01-25T18:27:09+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема