Макс
выполняет эмиссию элемента из источника Observable, имеющего максимальное значение
Оператор Max работает с Observable, испускающим числа (или элементы, которые могут быть оценены как числа), и испускает один элемент: элемент с наибольшим числом.
См. также
Информация, специфичная для языка
RxGroovy max maxBy
В RxGroovy этот оператор не входит в ядро ReactiveX, но является частью отдельного rxjava-math модуля.
RxGroovy реализует оператор max. Он принимает необязательный компаратор, который будет использоваться вместо его значения по умолчанию для сравнения значений двух элементов. Если более одного элемента имеет одинаковое максимальное значение, max будет испускать последний такой элемент, испущенный источником Observable.
Оператор maxBy похож на max, но вместо испускания элемента с максимальным значением, он испускает элемент с максимальным ключом, где этот ключ генерируется на основе функции, которую вы предоставляете maxBy
RxJava 1․x max maxBy
В RxJava этот оператор не входит в ядро ReactiveX, но является частью отдельного rxjava-math модуля.
RxJava реализует оператор max . Он принимает необязательный компаратор, который будет использоваться вместо его значения по умолчанию для сравнения значений двух элементов. Если более одного элемента имеет одинаковое максимальное значение, max будет испускать последний такой элемент, испущенный источником Observable.
Оператор maxBy похож на max, но вместо испускания элемента с максимальным значением, он испускает элемент с максимальным ключом, где этот ключ генерируется на основе функции, которую вы предоставляете maxBy
RxJS max maxBy
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 похож на 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
max и maxBy находятся в следующих дистрибутивах:
rx.all.jsrx.all.compat.jsrx.aggregates.js
Они требуют одного из следующих:
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
RxPHP max
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!
© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/max.html