|
- import ascending from "./ascending.js";
-
- export default function greatest(values, compare = ascending) {
- let max;
- let defined = false;
- if (compare.length === 1) {
- let maxValue;
- for (const element of values) {
- const value = compare(element);
- if (defined
- ? ascending(value, maxValue) > 0
- : ascending(value, value) === 0) {
- max = element;
- maxValue = value;
- defined = true;
- }
- }
- } else {
- for (const value of values) {
- if (defined
- ? compare(value, max) > 0
- : compare(value, value) === 0) {
- max = value;
- defined = true;
- }
- }
- }
- return max;
- }
|