for循环中未定义的javascript变量

时间:2013-04-12 13:13:42

标签: javascript json for-loop undefined

我有一个json文件给我回复:

{"id0":"58955","id1":"15614","id2":"897987"}

我解析了json,并使用例如identifier.id1

调用这些值

我想在for循环中显示所有标识符,我试过这个但是它来了“undefined undefined undefined”。如果我在我的循环中使用identifier.id1手动替换identifier.idk,它可以工作并显示15614。 我的错误在哪里?

这是我的代码

identifier = JSON.parse(output)

var html = '<table border="0">';
html += '<tr valign="top" ><td><b>Identifiers :</b></td>';


for (var k = 0; k < 3; k++) 
    {
        html += '<tr>';
        html += identifier.idk;
        html += '</tr>';
};

html += '</tr></table>';

2 个答案:

答案 0 :(得分:7)

因为它在你的对象中寻找idk! JavaScript并不神奇地知道您希望将字符串“id”和整数k连接在一起。你需要告诉它这样做。

使用括号表示法。

identifier["id" + k];

现在为你的下一个问题,你没有tds!我想你想在你的循环中使用td而不是tr。

答案 1 :(得分:1)

而不是identifier.idk使用identifier["id"+k]

说明:

identifier.idk在标识符对象中查找名为idk的属性; []形式的属性引用允许您构造一个字符串并将其用作属性名称。

作为一般性评论,在那里安装数组可能更好,而不是进行字符串操作来动态创建属性名称。