2016-11-04 62 views
-1

我目前正在研究一个使用JavaScript的网络应用程序,因为它的前端,我遇到了对象键的问题。Javascript:未定义

我想访问一个对象,我想动态获取对象的关键,但每次我得到一个错误“未定义的键”。

这是我的代码:

var data = JSON.parse(response); 
sites = []; 

for (var i = 0; i < Object.keys(data[0]).length; i++) { 
    sites.push(Object.keys(data[0])[i]); 
}; 

for (var x = 0; x < sites.length; x++) { 
    for (var u = 0; u < Object.keys(data[0])[sites[x]].length; u++) { 
     console.log(data[0].sites[x]) 
    } 
} 

data[0]随着:

Array[4] 
BAK 
: 
Array[4] 
BAN 
: 
Array[4] 
BAR 
: 
Array[4] 
BAY 
: 
Array[4] 
BLC 
: 
Array[4] 
BOL 
: 
Array[6] 
BTO 
: 
Array[6] 
CAR 
: 
Array[5] 
CUD 
: 
Array[4] 
DAD 
: 
Array[4] 

sites[]包含键(例如:BAK,BAN,BAY等)。 我登录的网站,它包含正确的密钥,但每次我打电话data[0].sites[x]它说“未识别的对象的键”。如果我手动设置它data[0].BAK[x],它是成功的。

希望你能帮助我解决并解释为什么会发生这种情况。

+1

'sites'是自己的一个变量,而不是data'的'属性。你有没有尝试过使用'console.log(data [0] .sites [x])'? – evolutionxbox

+0

你可以替换一些特定的行Object.keys(data [0])。请以response.length –

+0

替换,请以文字符号添加您的数据。 –

回答

0

尝试foreach循环

var data = {"key1":"value1", "key_2":"value2"}; 
 

 
    for (let i in data){ 
 
     console.log("key: " + i); 
 
     console.log("value: " + data[i]); 
 
    }