import ascending from "./ascending.js"; export default function least(values, compare = ascending) { let min; let defined = false; if (compare.length === 1) { let minValue; for (const element of values) { const value = compare(element); if (defined ? ascending(value, minValue) < 0 : ascending(value, value) === 0) { min = element; minValue = value; defined = true; } } } else { for (const value of values) { if (defined ? compare(value, min) < 0 : compare(value, value) === 0) { min = value; defined = true; } } } return min; }