Cel*_*Cel 4 average reactive-programming observable rxjs rxjs5
我想观察rxjs ^ 5的滚动平均值
const data$ = Rx.Observable.range(1, 9);
const dataToAverage$ = data$.bufferCount(4, 1);
const movingAverage$ = dataToAverage$.map(arr =>
arr.reduce((acc, cur) => acc + cur) / arr.length);
Run Code Online (Sandbox Code Playgroud)
1,2,3,4。1,并1,2与1,2,3呢?我会这样:
Observable.range(1, 9)
.scan((acc, curr) => {
acc.push(curr);
if (acc.length > 4) {
acc.shift();
}
return acc;
}, [])
.map(arr => arr.reduce((acc, current) => acc + current, 0) / arr.length)
.subscribe(console.log);
Run Code Online (Sandbox Code Playgroud)
在scan()刚刚收集最多4项和map()然后计算平均值。
1
1.5
2
2.5
3.5
4.5
5.5
6.5
7.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
660 次 |
| 最近记录: |