【发布时间】:2018-08-16 08:46:41
【问题描述】:
以下 RxJs 代码显示输入列表中的数字和运行总数:
let inputs = [10, 10, -30, 10, -30, 50, -25, -30, 10]
let obs$ = Rx.Observable.from(inputs)
let totals$ = obs$.scan((acc, next) => acc + next, 0)
obs$.subscribe(x => console.log('x:', x));
totals$.subscribe(x => console.log("total:", x))
totals$ 将发出:10、20、-10、0、-30...
我想以某种方式转换 obs$ 可观察对象,以便生成的 totals$ 永远不会发出负数。
即,在这种情况下,第一个和最后一个“-30”都应该被过滤掉:
otherObs$: 10, 10, 10, -30, 50, -25, 10
totals$: 10, 20, 30, 0, 50, 25, 35
编辑:请注意,我对修改后的otherObs$ 可观察对象感兴趣,即过滤掉一些原始输入数字的序列(obs$ 实际上会包含更多数据,所以我确实需要原始元素; “价值”只是过滤的关键)。 totals$ 此处仅用于显示正在发生的事情。
【问题讨论】:
标签: javascript rxjs reactive-programming reactivex