Kinyanjui Wangonya

“Be curious. Read widely. Try new things. I think a lot of what people call intelligence boils down to curiosity.” - Aaron Swartz

github twitter linkedin medium email
Finding an element in the array (the ES5, ES6 and ES7 way)
Aug 26, 2018
2 minutes read

This’ll be a quick one.

Say you want to check if a specific element exists in an array. There’s a couple of ways to do that:

ES5

indexOf()

indexOf returns the index of the first matching item found, or -1 if not found.

// check if a Fortnite ninja exists in the array
const ninjas = ['Alchemist', 'Brawler', 'Skirmisher', 'Harvester']

console.log(ninjas.indexOf('Brawler')) // 1
console.log(ninjas.indexOf('Harvester')) // 3
console.log(ninjas.indexOf('Assassin')) // -1 (doesn't exist)

lastIndexOf()

lastIndexOf() returns the index of the last matching item found, or -1 if not found.

// check if a Fortnite ninja exists in the array
// note that 'Brawler' exists twice
const ninjas = ['Alchemist', 'Brawler', 'Skirmisher', 'Harvester', 'Brawler', 'Stonefoot']

console.log(ninjas.lastIndexOf('Brawler')) // 4 (last one returned)
console.log(ninjas.lastIndexOf('Harvester')) // 3
console.log(ninjas.lastIndexOf('Assassin')) // -1 (doesn't exist)

ES6

find()

The find() method returns the value of the first element in the array that satisfies the provided testing function. Otherwise undefined is returned.

const ninjas = [
                {name: 'Alchemist'}, 
                {name: 'Brawler'}, 
                {name: 'Skirmisher'}, 
                {name: 'Harvester'}
               ]

console.log(ninjas.find(ninja => ninja.name === 'Harvester')); // {name: "Harvester"}
console.log(ninjas.find(ninja => ninja.name === 'Assassin')); // undefined

findIndex()

Returns the index of the first element in the array that satisfies the provided testing function. Otherwise -1 is returned.

const ninjas = [
                {name: 'Alchemist'}, 
                {name: 'Brawler'}, 
                {name: 'Skirmisher'}, 
                {name: 'Harvester'}
               ]

console.log(ninjas.findIndex(ninja => ninja.name === 'Harvester')); // 3
console.log(ninjas.findIndex(ninja => ninja.name === 'Assassin')); // -1

ES7

includes()

The includes() method determines whether an array includes a certain element, returning true or false as appropriate. For example, a.includes(value) returns true if a contains value

const ninjas = ['Alchemist', 'Brawler', 'Skirmisher', 'Harvester']

console.log(ninjas.includes('Brawler')); // true
console.log(ninjas.includes('Assassin')); // false

a.includes(value, i) returns true if a contains value after (or at) the position i

const ninjas = ['Alchemist', 'Brawler', 'Skirmisher', 'Harvester']

console.log(ninjas.includes('Skirmisher', 1)); // true
console.log(ninjas.includes('Skirmisher', 2)); // true
console.log(ninjas.includes('Skirmisher', 3)); // false



Back to posts