2016-11-04 4 views
-1

Ich arbeite derzeit an einer Webanwendung, die JavaScript als Frontend verwendet, und ich habe Probleme mit Objektschlüsseln.Javascript: undefined

Ich versuche, auf ein Objekt zuzugreifen, und ich möchte den Objektschlüssel dynamisch abrufen, aber jedes Mal habe ich einen Fehler "undefined Schlüssel".

Hier ist mein Code:

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]) 
    } 
} 

Mit 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[] enthält den Schlüssel (Beispiel: BAK, BAN, BAY, etc.). Ich protokollierte die Websites und es enthält die richtigen Schlüssel, aber jedes Mal, wenn ich rufe, heißt es "nicht identifizierte Schlüssel eines Objekts". Wenn ich es manuell data[0].BAK[x] einstelle, ist es ein Erfolg.

Hoffe du kannst mir helfen zu lösen und zu erklären, warum das passiert.

+1

'sites' ist eine Variable, auf seine eigene, und ist keine Eigenschaft von' data'. Haben Sie versucht, 'console.log (data [0] .sites [x])' '? – evolutionxbox

+0

Sie können eine bestimmte Zeile Object.keys (data [0]) ersetzen. Ersetzen Sie durch response.length –

+0

Bitte fügen Sie Ihre Daten in Literal Notation. –

Antwort

0

Try foreach-Schleife

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

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