angular rxjs groupby mergemap返回单个值

时间:2017-09-27 16:08:44

标签: angular rxjs rxjs5

我有以下代码按类型分组和计数项目。我想进行更改并制作groupBy return单个对象。

例如在mergeMap完成其操作之后,我想附加另一个运算符,它将分析以下结果并返回单个值' true'或者' false'对于整个结果集。

{ type: 'foo', total: 1 }
{ type: 'bar', total: 2 }

const list = [{ type: 'foo' }, { type: 'bar' }, { type: 'bar' }];

Observable.from( list ).groupBy( x => x.type )
  .mergeMap( list$ => { // each emission is a stream

    /* A stream of "aggregated" data. */
    const count$ = list$.count();

    /* Format the result. */
    return count$.map( count => ({ type: list$.key, count }));
  }).subscribe(r => console.log(r));

这会发出:

{ type: 'foo', total: 1 }
{ type: 'bar', total: 2 }

1 个答案:

答案 0 :(得分:1)

我猜你可以使用reduce()方法(https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/reduce.md

“在可观察序列上应用累加器函数,在结果序列中将聚合结果作为单个元素返回