| 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; |
| } |
|
|