如何将数组的可观察对象转换为可观察数组(RxJS)

时间:2016-10-18 16:40:15

标签: javascript arrays rxjs

似乎人们在将一组可观察数据转换为数组的可观察数时遇到麻烦 - 而不是相反。

所以,给定一个可观察的

 Observable<Result[]>

我如何从

获得
Observable<Result>[]  to   Observable<Result>[]

问题源于我有一个可观察物品的事实

items$: Observable<Item[]>

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

其中value可以采用离散值,例如

values = [1, 2, 3]

我需要为每个值创建一个observable,因为每个值都提供不同的组件。

所以我继续做了以下的映射

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

产生

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

但是,为了将每个值分配给我的组件,我需要

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

我如何到达那里?

1 个答案:

答案 0 :(得分:1)

代码中的一小部分更改:

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

map运算符实际上创建了一个新的observable