Max

發射來源 Observable 中具有最大值的項目

Max 運算子作用於發射數值(或可被評估為數值的項目)的 Observable,並發射單一項目:具有最大值的項目。

另請參閱

特定語言資訊

待定

待定

在 RxGroovy 中,此運算子不在 ReactiveX 核心中,而是獨立的 rxjava-math 模組的一部分。

max

RxGroovy 實作了 max 運算子。它接受一個可選的比較器,它將使用該比較器而不是預設比較器來比較兩個項目的值。如果有多個項目具有相同的最大值,max 將發射來源 Observable 發射的最後一個此類項目。

maxBy

maxBy 運算子與 max 類似,但它不是發射具有最大值的項目,而是發射具有最大的項目,該鍵是根據您提供給 maxBy 的函數產生的。

在 RxJava 中,此運算子不在 ReactiveX 核心中,而是獨立的 rxjava-math 模組的一部分。

max

RxJava 實作了 max 運算子。它接受一個可選的比較器,它將使用該比較器而不是預設比較器來比較兩個項目的值。如果有多個項目具有相同的最大值,max 將發射來源 Observable 發射的最後一個此類項目。

maxBy

maxBy 運算子與 max 類似,但它不是發射具有最大值的項目,而是發射具有最大的項目,該鍵是根據您提供給 maxBy 的函數產生的。

max

RxJS 實作了 max 運算子。它接受一個可選的比較函數,它將使用該比較函數而不是預設比較函數來比較兩個項目的值。

範例程式碼

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

根據指定的比較器,傳回可觀察序列中的最大值。

範例程式碼

//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!
    

待定