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.
26 lines
512 B
26 lines
512 B
function findIndex(array, predicate, self) { |
|
var len = array.length; |
|
var i; |
|
if (len === 0) return -1; |
|
if (typeof predicate !== 'function') { |
|
throw new TypeError(predicate + ' must be a function'); |
|
} |
|
|
|
if (self) { |
|
for (i = 0; i < len; i++) { |
|
if (predicate.call(self, array[i], i, array)) { |
|
return i; |
|
} |
|
} |
|
} else { |
|
for (i = 0; i < len; i++) { |
|
if (predicate(array[i], i, array)) { |
|
return i; |
|
} |
|
} |
|
} |
|
|
|
return -1; |
|
} |
|
|
|
module.exports = findIndex
|
|
|