RxJS中用于计算值流最大值的惯用法

时间:2016-03-28 19:13:45

标签: javascript node.js rxjs

计算固定流的最大值很简单,例如:

var source = Rx.Observable.from([1,3,5,7,9,2,4,6,8]).max();

但是这只生成一个值(在这种情况下为9)。

到目前为止,我想生成一个最大值序列,直到Observable生成一个新的最大值。所以输出就像[1,3,5,7,9]。

到目前为止,我的想法是将输出流与最大值合并,使用输入流(使用combineLatest)并比较这两个值。然而,这似乎比我应该更复杂。

1 个答案:

答案 0 :(得分:1)

您可以这样使用printf("\n"); Array(A, nA, &B, &nB, &C, &nC); 功能:

scan

Scan允许您拥有一个遵循function max(a,b) {return (a>b ? a : b} var max$ = source$.scan(max,0); 类型关系的流,其中On+1 = f(In+1, Sn)是源流的第n个输入,In将是第n个输出,On将是序列上累积的值(类似于数组的Sn运算符)。