How to get the index of an item in a JavaScript array
New Course Coming Soon:
Get Really Good at Git
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`
Here is how can I help you:
- COURSES where I teach everything I know
- THE VALLEY OF CODE your web development manual
- BOOTCAMP 2024 cohort in progress, next edition in 2025
- BOOKS 16 coding ebooks you can download for free on JS Python C PHP and lots more
- SOLO LAB everything I know about running a lifestyle business as a solopreneur
- Interesting links collection
- Follow me on X