search

Array.prototype.findIndex

Returns the index of the first element for which the callback returns truthy, or -1 if none match. Reach for it when you need the position — e.g. to splice or replace.

arr.findIndex(callbackFn[, thisArg])

Parameters

Parameter Purpose
callbackFn(element, index, array) Predicate; first truthy element's index is returned
thisArg Value used as `this` inside callbackFn

Examples

console.log([1,2,3,4].findIndex(n => n > 2));

Logs: 2

console.log([1,2,3].findIndex(n => n > 99));

Logs: -1

const arr = [{id:'a'},{id:'b'}]; const i = arr.findIndex(o => o.id === 'b'); arr.splice(i, 1); console.log(arr);

Logs: [{id: 'a'}]

console.log([NaN, 1, 2].findIndex(v => Number.isNaN(v)));

Logs: 0 (works for NaN unlike indexOf)

Gotcha

Returns -1 when nothing matches (falsy!). Use it instead of indexOf when you need custom equality or want to match NaN.

Related methods

← All JS array methods · TypeScript vs JavaScript