将变量评估为JSON查询的一部分

时间:2013-08-02 17:41:42

标签: javascript json

我有这个:

var JSON = [
    {
        "id": 1,
        "name1": "Seymore Butts",
        "name2": "Jane Doe",
        "name3": "John Smith",
        "name4": "Mike Hawk"
    }];
for (i = 1; i < 5; i++) {
    var index = "name" + i;
    window.console.log(JSON[0].index);
}

当然它未定义因为它正在寻找

JSON[0].index 

而不是

JSON[0].name1 

是否有任何方法可以强制它评估索引var而不只是阅读“index”?

2 个答案:

答案 0 :(得分:4)

是的,只需将语法更改为:

window.console.log(JSON[0][index]);

答案 1 :(得分:2)

使用此:

for (i = 1; i < 5; i++) {
    var index = "name" + i;
    window.console.log(JSON[0][index]);
}

此处.[]之间的区别在于object.sub_field将尝试访问名为sub_field的字段,而object[sub_field]将尝试访问由sub_field命名的字段“变量{{1}}中的任何内容”。