在javascript中访问等于特定值的JSON属性

时间:2015-02-03 19:47:47

标签: javascript json

我有一个像这样的JSON对象数组:

people {
 {
    name: 'Alice',
    age: '25',
 },
 { 
    name: 'Bob',
    age: '34' 
 }
} 

我想访问'name'值为'Alice'的人的'age'值。我如何在javascript中执行此操作?类似的东西(在逻辑中的伪代码我知道这在javascript中是不可能的):

people['age'].value where name == 'Alice'

结果将是:'25'。似乎有很多相关的JSON问题,但我发现的(我发现的)都没有解决这个特定的问题

2 个答案:

答案 0 :(得分:1)

您需要遍历对象并比较您要搜索的内容的名称。

for(prop in people) {
    if(prop.name === "Alice") {
        console.log(prop.age);
    }
}

我们需要Alice的年龄,我们迭代所有对象并根据对象名称属性值返回对象的age属性值。

答案 1 :(得分:0)

由于people变量是JSON对象的数组,因此您无法使用'age'字符串对其进行索引。你可以使用一个简单的for循环来遍历数组中的所有对象,并找到名称匹配的对象。

这段代码是一个返回一个人年龄的函数。

function get_age(people_array, name) {
    var length = people_array.length;

    for (var i = 0; i < length; i += 1) {
        if (people_array[i].name == name)
            return people_array[i].age;
    }
}