Get JavaScript object from array of objects by value of property [duplicate]
Let's say I have an array of four objects:
var jsObjects = [
{a: 1, b: 2},
{a: 3, b: 4},
{a: 5, b: 6},
{a: 7, b: 8}
];
Is there a way that I can get the third object ({a: 5, b: 6}
) by the value of the property b
for example without a for...in
loop?
Solution 1:
Filter
array of objects, which property matches value, returns array:
var result = jsObjects.filter(obj => {
return obj.b === 6
})
See the MDN Docs on Array.prototype.filter()
const jsObjects = [
{a: 1, b: 2},
{a: 3, b: 4},
{a: 5, b: 6},
{a: 7, b: 8}
]
let result = jsObjects.filter(obj => {
return obj.b === 6
})
console.log(result)
Find
the value of the first element/object in the array, otherwise undefined
is returned.
var result = jsObjects.find(obj => {
return obj.b === 6
})
See the MDN Docs on Array.prototype.find()
const jsObjects = [
{a: 1, b: 2},
{a: 3, b: 4},
{a: 5, b: 6},
{a: 7, b: 8}
]
let result = jsObjects.find(obj => {
return obj.b === 6
})
console.log(result)
Solution 2:
jsObjects.find(x => x.b === 6)
From MDN:
The
find()
method returns a value in the array, if an element in the array satisfies the provided testing function. Otherwiseundefined
is returned.
Side note: methods like find()
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.