15 lines
352 B
JavaScript
15 lines
352 B
JavaScript
|
var safeCb = require('./safeCb');
|
||
|
exports = function(arr, predicate, ctx, dir) {
|
||
|
dir = dir || 1;
|
||
|
predicate = safeCb(predicate, ctx);
|
||
|
var len = arr.length;
|
||
|
var i = dir > 0 ? 0 : len - 1;
|
||
|
while (i >= 0 && i < len) {
|
||
|
if (predicate(arr[i], i, arr)) return i;
|
||
|
i += dir;
|
||
|
}
|
||
|
return -1;
|
||
|
};
|
||
|
|
||
|
module.exports = exports;
|