使用rxjs进行分组和聚合



扫描是这样工作的(使用sum函数):

1-1-1-1-1-1 -> 1-2-3-4-5-6

但是我需要这样的东西:with n=3

1-1-1-1-1-1 -> 3-3

我如何实现这个行为?

在RxJs中你可以使用bufferWithCount:

var source = Rx.Observable.from([1,1,1,1,1,1])
                  .bufferWithCount(3)
                  .flatMap(group => Rx.Observable.from(group).sum());

你可以选择使用windowWithCount,这样你就不必为了使用sum而重新包装输出,但是你也会得到一个空的最终窗口,它会发出一个无关的0值。

这适用于c#:

var query =
    new [] { 1, 1, 1, 1, 1, 1, }
        .ToObservable()
        .Buffer(3)
        .Select(x => x.Sum());

我想[rxjs]也会有类似的效果

相关内容

  • 没有找到相关文章