平均

计算可观察对象发出的数字的平均值,并发出该平均值

Average 运算符作用于发出数字(或可以评估为数字的项目)的可观察对象,并发出单个值:源可观察对象发出的所有数字的平均值。

另请参阅

特定语言信息

待定

待定

在 RxGroovy 中,此运算符不在 ReactiveX 核心库中,而是属于独立的 rxjava-math 模块,在该模块中,它通过四个特定类型的运算符实现:averageDoubleaverageFloataverageIntegeraverageLong。以下示例展示了这些运算符的工作原理。

示例代码

def myObservable = Observable.create({ aSubscriber ->
  if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext(4);
  if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext(3);
  if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext(2);
  if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext(1);
  if(false == aSubscriber.isUnsubscribed()) aSubscriber.onCompleted();
});

Observable.averageInteger(myObservable).subscribe(
  { println(it); },                  // onNext
  { println("Error encountered"); }, // onError
  { println("Sequence complete"); }  // onCompleted
);
2
Sequence complete
average

您也可以对应用于每个项目的函数的结果进行平均,而不是对项目本身进行平均,如上图所示,它发出源可观察对象发出的图形的平均边数。

如果源可观察对象没有发出任何项目,此运算符将抛出 IllegalArgumentException 异常。

此运算符不在 RxJava 核心库中,而是属于独立的 rxjava-math 模块,在该模块中,它通过四个特定类型的运算符实现:averageDoubleaverageFloataverageIntegeraverageLong

average

您也可以对应用于每个项目的函数的结果进行平均,而不是对项目本身进行平均,如上图所示,它发出源可观察对象发出的图形的平均边数。

如果源可观察对象没有发出任何项目,此运算符将抛出 IllegalArgumentException 异常。

average

RxJS 将此运算符实现为 average。以下代码示例展示了如何使用它

示例代码

var source = Rx.Observable.range(0, 9).average();

var subscription = source.subscribe(
    function (x) {
        console.log('Next: ' + x);
    },
    function (err) {
        console.log('Error: ' + err);
    },
    function () {
        console.log('Completed');
    });
Next: 4
Completed
average

您也可以对应用于每个项目的函数的结果进行平均,而不是对项目本身进行平均,如上图所示,它发出源可观察对象发出的图形的平均边数。

示例代码

var arr = [
    { value: 1 },
    { value: 2 },
    { value: 3 }
];

var source = Rx.Observable.fromArray(arr).average(function (x) {
    return x.value;
});

var subscription = source.subscribe(
    function (x) {
        console.log('Next: ' + x);
    },
    function (err) {
        console.log('Error: ' + err);
    },
    function () {
        console.log('Completed');
    });
Next: 2
Completed

average 位于以下发行版中

  • rx.all.js
  • rx.all.compat.js
  • rx.aggregates.js

它需要以下之一

  • rx.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js

待定

RxPHP 将此运算符实现为 average

计算可观察序列值的平均值。

示例代码

//from https://github.com/ReactiveX/RxPHP/blob/master/demo/average/average.php

$source = Rx\Observable::range(0, 9)->average();

$subscription = $source->subscribe($stdoutObserver);

   
Next value: 4
Complete!
    

待定

待定

待定