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.
16 lines
509 B
16 lines
509 B
3 years ago
|
import cb from './_cb.js';
|
||
|
import getLength from './_getLength.js';
|
||
|
|
||
|
// Internal function to generate `_.findIndex` and `_.findLastIndex`.
|
||
|
export default function createPredicateIndexFinder(dir) {
|
||
|
return function(array, predicate, context) {
|
||
|
predicate = cb(predicate, context);
|
||
|
var length = getLength(array);
|
||
|
var index = dir > 0 ? 0 : length - 1;
|
||
|
for (; index >= 0 && index < length; index += dir) {
|
||
|
if (predicate(array[index], index, array)) return index;
|
||
|
}
|
||
|
return -1;
|
||
|
};
|
||
|
}
|