【问题标题】:angular rxjs groupby mergemap return single valueangular rxjs groupby mergemap 返回单个值
【发布时间】:2018-03-09 05:13:28
【问题描述】:

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

例如,在 mergeMap 完成其操作后,我想附加另一个运算符,它将分析以下结果并为整个结果集返回单个值“真”或“假”。

{ 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 }

【问题讨论】:

    标签: angular rxjs rxjs5


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2018-04-07
      • 2019-07-09
      相关资源
      最近更新 更多