patternjavascriptCritical
Search an array of JavaScript objects for an object with a matching value
Viewed 0 times
arraysearchobjectwithmatchingforobjectsvaluejavascript
Problem
I've got an array:
I'm unable to change the structure of the array. I'm being passed an id of
How do I do this in JavaScript or using jQuery?
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]I'm unable to change the structure of the array. I'm being passed an id of
45, and I want to get 'bar' for that object in the array. How do I do this in JavaScript or using jQuery?
Solution
Use the
From MDN:
The
If you want to find its index instead, use
From MDN:
The
If you want to get an array of matching elements, use the
This will return an array of objects. If you want to get an array of
Side note: methods like
find() method:myArray.find(x => x.id === '45').foo;From MDN:
The
find() method returns the first value in the array, if an element in the array satisfies the provided testing function. Otherwise undefined is returned.If you want to find its index instead, use
findIndex():myArray.findIndex(x => x.id === '45');From MDN:
The
findIndex() method returns the index of the first element in the array that satisfies the provided testing function. Otherwise -1 is returned.If you want to get an array of matching elements, use the
filter() method instead:myArray.filter(x => x.id === '45');This will return an array of objects. If you want to get an array of
foo properties, you can do this with the map() method:myArray.filter(x => x.id === '45').map(x => x.foo);Side note: methods like
find() or filter(), and arrow functions are not supported by older browsers (like IE), so if you want to support these browsers, you should transpile your code using Babel (with the polyfill).Code Snippets
myArray.find(x => x.id === '45').foo;myArray.findIndex(x => x.id === '45');myArray.filter(x => x.id === '45');myArray.filter(x => x.id === '45').map(x => x.foo);Context
Stack Overflow Q#7364150, score: 2210
Revisions (0)
No revisions yet.