RedErdnuss
RedErdnuss

Reputation: 123

Get specific array value

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

Answers (2)

Paul Roub
Paul Roub

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

tymeJV
tymeJV

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

Related Questions