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
AI workshop
join cohort #1
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 20 books to help you become a better developer:
- Astro Handbook
- HTML Handbook
- Next.js Pages Router Handbook
- Alpine.js Handbook
- HTMX Handbook
- TypeScript Handbook
- React Handbook
- SQL Handbook
- Git Cheat Sheet
- Laravel Handbook
- Express Handbook
- Swift Handbook
- Go Handbook
- PHP Handbook
- Python Handbook
- Linux Commands Handbook
- C Handbook
- JavaScript Handbook
- CSS Handbook
- Node.js Handbook