使用 rxjs 进行分组和聚合
group and aggregate with rxjs
扫描是这样的(带求和函数):
1-1-1-1-1-1 -> 1-2-3-4-5-6
但我需要这样的东西:n=3
1-1-1-1-1-1 -> 3-3
如何实现此行为?
这在 c# 中有效:
var query =
new [] { 1, 1, 1, 1, 1, 1, }
.ToObservable()
.Buffer(3)
.Select(x => x.Sum());
我认为 [rxjs] 的工作方式类似。
在 RxJs 中你可以使用 bufferWithCount
:
var source = Rx.Observable.from([1,1,1,1,1,1])
.bufferWithCount(3)
.flatMap(group => Rx.Observable.from(group).sum());
您可以选择使用 windowWithCount
,这样您就不必为了使用 sum
而重新包装输出,但您也会得到一个空的最终 window ,这将触发一个无关的 0 值。
扫描是这样的(带求和函数):
1-1-1-1-1-1 -> 1-2-3-4-5-6
但我需要这样的东西:n=3
1-1-1-1-1-1 -> 3-3
如何实现此行为?
这在 c# 中有效:
var query =
new [] { 1, 1, 1, 1, 1, 1, }
.ToObservable()
.Buffer(3)
.Select(x => x.Sum());
我认为 [rxjs] 的工作方式类似。
在 RxJs 中你可以使用 bufferWithCount
:
var source = Rx.Observable.from([1,1,1,1,1,1])
.bufferWithCount(3)
.flatMap(group => Rx.Observable.from(group).sum());
您可以选择使用 windowWithCount
,这样您就不必为了使用 sum
而重新包装输出,但您也会得到一个空的最终 window ,这将触发一个无关的 0 值。