0

我有一个可观察的一系列任务。我想通过另一个可观察的(文本输入)过滤这些任务。

然后我想通过“实体”属性对过滤后的任务进行分组并映射,因此结果是:

{ 'entity': 'a',
  'tasks': [...] },
{ 'entity': 'b',
  'tasks': [...] }

这是我得到的最接近的测试:

https://stackblitz.com/edit/rxjs-filter-group

但我似乎无法正确地将它们分组..

4

1 回答 1

0

我已经更新了您的部分代码,请参阅:

const tasks = combineLatest(source,this.searchQuery$).pipe(
        map(([tasks,query]) => {
          return tasks.filter(task => {
            return task.name.toLowerCase().indexOf(query.toLowerCase()) > -1;
          })
        }),
      mergeMap(v => from(v)
        .pipe(
            groupBy(task => task.entity),
            mergeMap(group => group.pipe(toArray()))
        )
      )
    )
于 2018-07-12T10:19:49.473 回答