假设我有以下序列A
Invalidate/Restart the IDE
如何组合序列[A]中的值以达到[B]中的结果?
我尝试了CombineLatest()运算符,但是没有用。
每次发射新值时,我都需要合并以前的值
答案 0 :(得分:2)
您可以使用scan聚合对象的属性。
const {of} = rxjs;
const {scan} = rxjs.operators;
of({a:0}, {b:1}, {c:2}).pipe(
scan((acc, next) => ({...next, ...acc}), {})
).subscribe(value => console.log(value));
<script src="https://unpkg.com/@reactivex/rxjs@6.x/dist/global/rxjs.umd.js"></script>
如果要覆盖先前的值或要覆盖聚合的值,可以将({...next, ...acc})
的顺序更改为({...acc, ...next})
。