gpt4 book ai didi

javascript - RxJS 中计算值流最大值的惯用方法

转载 作者:行者123 更新时间:2023-12-03 07:19:30 26 4
gpt4 key购买 nike

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

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

但是这只会生成一个值(本例中为 9)。

我想生成到目前为止的一系列最大值,直到 Observable 产生新的最大值。因此输出类似于 [1, 3, 5, 7, 9]。

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

最佳答案

您可以通过这种方式使用scan功能:

function max(a,b) {return (a>b ? a : b}

var max$ = source$.scan(max,0);

Scan允许您拥有一个遵循 On+1 = f(In+1, Sn) 类型关系的流,其中 In 是源流的第 n 个输入, On 将是第 n 个输出,Sn 将是在序列上累积的值(类似于数组的 reduce 运算符)。

关于javascript - RxJS 中计算值流最大值的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36269382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com