How to get the index of an item in a JavaScript array
Here is how to retrieve the index of an item in a JS array based on its value
Suppose you have the value of an item which is contained in an array, and you want to get its index.
How can you get it?
If the item is a primitive value, like a string or number, you can use the indexOf
method of an array:
const letters = ['a', 'b', 'c']
const index = letters.indexOf('b')
//index is `1`
Remember that the index starts from the number
0
If the item is an object, you can’t use this way, because if you try doing:
const letters = [
{
letter: 'a',
},
{
letter: 'b',
},
{
letter: 'c',
},
]
const index = letters.indexOf({
letter: 'b',
})
index
will be -1
which means the item was not found. Because objects are compared by reference, not by their values (differently for primitive types). The object passed to indexOf
is a completely different object than the second item in the array.
You can use the findIndex
value like this, which runs a function for each item in the array, which is passed the element, and its index. Returning from it will assign the return value to the return value of findIndex
:
const letters = [
{
letter: 'a',
},
{
letter: 'b',
},
{
letter: 'c',
},
]
const index = letters.findIndex((element, index) => {
if (element.letter === 'b') {
return true
}
})
//index is `1`
→ I wrote 17 books to help you become a better developer:
- C Handbook
- Command Line Handbook
- CSS Handbook
- Express Handbook
- Git Cheat Sheet
- Go Handbook
- HTML Handbook
- JS Handbook
- Laravel Handbook
- Next.js Handbook
- Node.js Handbook
- PHP Handbook
- Python Handbook
- React Handbook
- SQL Handbook
- Svelte Handbook
- Swift Handbook
Also, JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025