Introduction to JavaScript findIndex() Method
The findIndex() method in JavaScript is used to search an array for an
element that matches a specific condition, and returns the index of the
first element that matches the condition. This method takes two
arguments: a callback function that defines the condition to be matched,
and an optional this value that will be used as the this value for
the callback function.
The find()and findIndex() methods are like filter() in that they
iterate through your array looking for elements for which your predicate
function returns a truthy value. Unlike filter(), however, these two
methods stop iterating the first time the predicate finds an element.
When that happens, find() returns the matching element, and
findIndex() returns the index of the matching element. If no matching
element is found, find() returns undefined and findIndex() returns
-1:
In this article, we will discuss how to make use of the findIndex()
method in JavaScript.
Searching Through an Array for Items That Meet Specific Criteria
To use the findIndex() method, you pass in a callback function as the
first argument. The callback function should take three arguments: the
current element being processed, the index of the current element, and
the array being searched. The callback function should return true if
the element matches the condition, and false otherwise.
For example, suppose you have an array of numbers, and you want to find
the index of the first element that is greater than 10. You could use
the findIndex() method and a callback function to do this, as shown in
the following code:
let numbers = [5, 10, 15, 20, 25];
let index = numbers.findIndex(function (element) {
return element > 10;
});
console.log(index);
In this code, the findIndex() method is called on the numbers array,
and is passed a callback function as the first argument. The function
returns true if the current element is greater than 10, and false
otherwise.
The findIndex() method then iterates over the elements in the
numbers array, calling the callback function for each element. When
the callback function returns true for the first time, the
findIndex() method stops iterating and returns the index of the
element that matched the condition. In this case, the first element that
is greater than 10 is the element at index 2, so the findIndex()
method returns 2.
For example, suppose you have an array of objects, and you want to find
the index of the first object that has a name property equal to
“John”. You could use the findIndex() method and a callback function
to do this, as shown in the following code:
let people = [
{ name: "Alice" },
{ name: "Bob" },
{ name: "John" },
{ name: "Sue" },
];
let index = people.findIndex(
function (element) {
return element.name === "John";
},
{ name: "John" }
);
console.log(index);
Output
2
In this code, the findIndex() method is called on the people array,
and is passed a callback function as the first argument. The callback
function takes one argument - the current element. The function returns
true if the name property of the object is equal to “John”, and
false otherwise.
The findIndex() method then iterates over the elements in the people
array, calling the callback function for each element. When the callback
function returns true for the first time, the findIndex() method
stops iterating and returns the index of the element that matched the
condition. In this case, the first object with the name property equal
to “John” is at index 2, so the findIndex() method returns 2.
Summary
As you can see, the findIndex() method is a powerful and versatile
tool for searching arrays in JavaScript. Whether you need to find the
index of an element that matches a simple condition, or a more complex
condition involving multiple properties, the findIndex() method can
help you get the job done.
References
Array.prototype.findIndex() - JavaScript | MDN (mozilla.org)

