maxBy< S, T> function
Returns the element of values
for which orderBy
returns the maximum
value.
The values returned by orderBy
are compared using the compare
function.
If compare
is omitted, values must implement Comparable<T> and they are
compared using their Comparable.compareTo.
Implementation
S maxBy<S, T>(Iterable<S> values, T orderBy(S element),
{int compare(T value1, T value2)}) {
compare ??= defaultCompare<T>();
S maxValue;
T maxOrderBy;
for (var element in values) {
var elementOrderBy = orderBy(element);
if (maxOrderBy == null || compare(elementOrderBy, maxOrderBy) > 0) {
maxValue = element;
maxOrderBy = elementOrderBy;
}
}
return maxValue;
}