合并序列值

时间:2019-06-07 14:44:14

标签: rxjs

假设我有以下序列A

Invalidate/Restart the IDE

如何组合序列[A]中的值以达到[B]中的结果?

我尝试了CombineLatest()运算符,但是没有用。

每次发射新值时,我都需要合并以前的值

1 个答案:

答案 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})