Max

从源 Observable 中发出具有最大值的项目

Max 操作符作用于发出数字(或可以评估为数字的项目)的 Observable,并发出单个项目:具有最大数字的项目。

另请参见

特定语言信息

待定

待定

在 RxGroovy 中,此操作符不在 ReactiveX 核心库中,而是 rxjava-math 模块的一部分。

max

RxGroovy 实现了一个 max 操作符。它接受一个可选的比较器,它将使用比较器而不是默认的比较器来比较两个项目的 value。如果多个项目具有相同的最大值,max 将发出源 Observable 发出的最后一个此类项目。

maxBy

maxBy 操作符类似于 max,但它不是发出具有最大值的项目,而是发出具有最大的项目,其中该键是根据您提供给 maxBy 的函数生成的。

在 RxJava 中,此操作符不在 ReactiveX 核心库中,而是 rxjava-math 模块的一部分。

max

RxJava 实现了一个 max 操作符。它接受一个可选的比较器,它将使用比较器而不是默认的比较器来比较两个项目的 value。如果多个项目具有相同的最大值,max 将发出源 Observable 发出的最后一个此类项目。

maxBy

maxBy 操作符类似于 max,但它不是发出具有最大值的项目,而是发出具有最大的项目,其中该键是根据您提供给 maxBy 的函数生成的。

max

RxJS 实现 max 操作符。它接受一个可选的比较器函数,它将使用比较器函数而不是默认的比较器函数来比较两个项目的 value。

示例代码

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

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

maxBy 操作符类似于 max,但它不是发出具有最大值的项目,而是发出具有最大的项目,其中该键是根据您提供给 maxBy 的函数生成的。maxBy 还接受一个可选的第二个参数:一个比较器函数,它将使用该函数而不是默认的函数来比较两个项目的键。

maxBy 发出一份列表。如果多个项目具有相同的最大键值,每个此类项目都将包含在列表中。

示例代码

var source = Rx.Observable.fromArray([1,3,5,7,9,2,4,6,8,9])
               .maxBy( function (x) { return x; } );

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

maxmaxBy 在以下发行版中找到

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

它们需要以下内容之一

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

RxPHP 将此操作符实现为 max

根据指定的比较器返回 Observable 序列中的最大值。

示例代码

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

/* Without comparer */
$source = \Rx\Observable::fromArray([1, 3, 5, 7, 9, 2, 4, 6, 8])
    ->max();

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

   
Next value: 9
Complete!
    
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/max/max-with-comparer.php

/* With a comparer */
$comparer = function ($x, $y) {
    if ($x > $y) {
        return 1;
    } elseif ($x < $y) {
        return -1;
    }
    return 0;
};

$source = \Rx\Observable::fromArray([1, 3, 5, 7, 9, 2, 4, 6, 8])
    ->max($comparer);

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

   
Next value: 9
Complete!
    

待定