I have array with objects:
[{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'m'},{name:'test2', lastname: 'test2', gender:'m'}]
How to get first (and only 1) object from array with genger: 'm'?
I have array with objects:
[{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'m'},{name:'test2', lastname: 'test2', gender:'m'}]
How to get first (and only 1) object from array with genger: 'm'?
You can use find
var ar = [{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'m'},{name:'test2', lastname: 'test2', gender:'m'}];
var result = ar.find(function(e) {
return e.gender == 'm';
});
console.log(result)
Loop over your array and check if the item has gender == 'm'
in each iteration. Could look like this:
function first_male(data) {
for (var i = 0; i < data.length; i++) {
if (data[i].gender == 'm') {
return data[i];
}
}
}
var data = [
{name:'test', lastname: 'test', gender:'f'},
{name:'test1', lastname: 'test1', gender:'m'},
{name:'test2', lastname: 'test2', gender:'m'}
];
first_male(data); // Object {name: "test1", lastname: "test1", gender: "m"}
You could use Array#find
The
find()
method returns avalue
in the array, if an element in the array satisfies the provided testing function. Otherwiseundefined
is returned.
var array = [{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'m'},{name:'test2', lastname: 'test2', gender:'m'}];
console.log(array.find(a => a.gender ==='m'));
If not available, use polyfill. Or
var array = [{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'m'},{name:'test2', lastname: 'test2', gender:'m'}],
element;
array.some(function (a) {
if (a.gender === 'm') {
element = a;
return true;
}
});
console.log(element);
You simply have to loop on your array. There is a very similar thread here : Find a value in an array of objects in Javascript The return instruction will break out of the loop when a corresponding object is found.