2013-04-12 169 views
-3

我有一個JSON文件返回我是這樣的:未定義JavaScript變量在for循環

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

我解析JSON,並與例如identifier.id1

我要顯示所有調用的值我的標識符在for循環中,我嘗試過,但它來到「undefined undefined undefined」。如果我在我的循環中手動將identifier.idk替換爲identifier.id1,它將起作用並顯示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>'; 

回答

7

因爲它是尋找你的對象IDK! JavaScript不會奇蹟般地知道你想要字符串「id」和整數k連接在一起。你需要告訴它這樣做。

使用括號表示法。

identifier["id" + k]; 

現在對於你的下一個問題,你沒有tds!我想你想在你的循環中使用td而不是tr。

+0

這應該適合你iLearnToDev .... !!! – sven

+0

非常感謝,這是一個新手的錯誤,我沒有意識到! – iLearnToDev

1

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

說明:

identifier.idk查找一個名爲字面上idk您的標識對象內的財產;屬性引用的[]形式允許您構造一個字符串並將其用作屬性名稱。

作爲一般性評論,可能會更好地在其中創建數組,而不是通過字符串操作來動態創建屬性名稱。