扫描是这样工作的(使用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]也会有类似的效果