获取特定的数组值

时间:2014-08-06 21:40:35

标签: javascript arrays

var stored =
        [{subject:"farm",name:"John Doe"},
         {subject:"steam",name:"Michael Buck"},
         {subject:"finance",name:"Ron Ruckle"}, //need this
         {subject:"geo",name:"Ben Bond"}];

我需要获取特定的数组值。我知道有可能这样做:

     getitem = stored[2]["name"];

但由于我不知道该行,只有第一项的值我需要这样的东西:

     getitem = stored["subject:finance"]["name"];

2 个答案:

答案 0 :(得分:2)

你必须迭代并检查:

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");

答案 1 :(得分:0)

使用现代浏览器,您可以使用filter()查找所需的元素,然后获取其名称:

var results = stored.filter(
  function( item )
  {
    return item.subject == "finance";
  }
);

var name = results[0].name;

MDN docs显示了如何为旧浏览器添加filter()方法。