2016-11-04 95 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]); 
 
    }