Reputation: 123
var stored =
[{subject:"farm",name:"John Doe"},
{subject:"steam",name:"Michael Buck"},
{subject:"finance",name:"Ron Ruckle"}, //need this
{subject:"geo",name:"Ben Bond"}];
I need to get an specific array value. I know it is possible to do this:
getitem = stored[2]["name"];
but since I don't know the row, only the first item's value I need something like this:
getitem = stored["subject:finance"]["name"];
Upvotes: 0
Views: 146
Reputation: 36438
With modern browsers, you can use filter()
to find the element you need, then get its name:
var results = stored.filter(
function( item )
{
return item.subject == "finance";
}
);
var name = results[0].name;
The MDN docs show how to add a filter()
method for older browsers, as well.
Upvotes: 0
Reputation: 104775
You'd have to iterate and check:
function getNameFromSubject(subject) {
for (var i = 0; i < stored.length; i++) {
if (stored[i].subject == subject) return stored[i].name;
}
return null;
}
var name = getNameFromSubject("finance");
Upvotes: 2