The See also the
findIndex[]
method returns the index of the first element in an array that satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned. Try it
find[]
method, which returns the first element that satisfies the testing function [rather than its index].Syntax
// Arrow function
findIndex[[element] => { /* … */ } ]
findIndex[[element, index] => { /* … */ } ]
findIndex[[element, index, array] => { /* … */ } ]
// Callback function
findIndex[callbackFn]
findIndex[callbackFn, thisArg]
// Inline callback function
findIndex[function[element] { /* … */ }]
findIndex[function[element, index] { /* … */ }]
findIndex[function[element, index, array]{ /* … */ }]
findIndex[function[element, index, array] { /* … */ }, thisArg]
Parameters
callbackFn
A function used to test elements in the array.
The function is called with the following arguments:
element
The current element being processed in the array.
index
The index of the current element being processed in the array.
array
The array findIndex[]
was called upon.
The callback must return a truthy value to indicate an appropriate element has been found. The index of this element is then returned by findIndex[]
.
thisArg
Optional
Optional object to use as this
when executing callbackFn
.
Return value
The index of the first element in the array that passes the test. Otherwise, -1
.
Description
The findIndex[]
method executes the callbackFn
function once for every index in the array, in ascending order, until it finds the one where callbackFn
returns a truthy value.
If such an element is
found, findIndex[]
immediately returns the element's index. If callbackFn
never returns a truthy value [or the array's length
is 0
], findIndex[]
returns -1
.
callbackFn
is invoked for every index of the array, not just those with assigned values. Empty slots in sparse arrays behave the same as undefined
.
callbackFn
is invoked with three arguments:
- The value of the element
- The index of the element
- The Array object being traversed
If a thisArg
parameter is passed to findIndex[]
, it will be used as the this
inside each invocation of the callbackFn
. If it is not provided, then undefined
is used.
The range of elements processed by findIndex[]
is set before the first invocation of
callbackFn
. Elements which are assigned to indexes already visited, or to indexes outside the range, will not be visited by callbackFn
. callbackFn
will not process the elements appended to the array after the call to findIndex[]
begins. If an existing, unvisited element of the array is changed by callbackFn
, its value passed to the callbackFn
will be the value at the time findIndex[]
visits the element's index. Elements that are
deleted
are still visited.
Warning: Concurrent modification of the kind described in the previous paragraph frequently leads to hard-to-understand code and is generally to be avoided [except in special cases].
Examples
Find the index of a prime number in an array
The following example returns the index of the first element in the array that is a prime number, or -1
if there is no prime number.
function isPrime[element] {
if [element % 2 === 0 || element