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
Let me know of any other interesting ways I may have missed :)
Top comments (0)