You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
467 B
19 lines
467 B
import ascending from "./ascending.js";
|
|
import minIndex from "./minIndex.js";
|
|
|
|
export default function leastIndex(values, compare = ascending) {
|
|
if (compare.length === 1) return minIndex(values, compare);
|
|
let minValue;
|
|
let min = -1;
|
|
let index = -1;
|
|
for (const value of values) {
|
|
++index;
|
|
if (min < 0
|
|
? compare(value, value) === 0
|
|
: compare(value, minValue) < 0) {
|
|
minValue = value;
|
|
min = index;
|
|
}
|
|
}
|
|
return min;
|
|
}
|
|
|