HH\Lib\Math\max_by

Meta Engineer?

This is available as Math\max_by in the www repository.

Returns the largest element of the given Traversable, or null if the Traversable is empty

namespace HH\Lib\Math;

function max_by<T>(
  Traversable<T> $traversable,
  (function(T): num) $num_func,
): ?T;

The value for comparison is determined by the given function. In the case of duplicate numeric keys, later values overwrite previous ones.

For numeric elements, see Math\max().

Parameters

Returns

  • ?T

Examples

$items = vec[tuple('foo', 9), tuple('bar', 8), tuple('baz', 7)];
$maxItem = Math\max_by($items, $item ==> $item[1]);
echo "The max item is " . $maxItem[0];

Ouput

The max item is foo