2017-06-01 5 views
1

Ich habe ein Objekt, das in Javascript, das die Eigenschaft habe, die ich suche, aber wenn ich versuche, auf die Eigenschaft zugreifen, ist es undefiniert.Eigenschaft in Objekt existiert aber ist undefined

Hier ist mein Code:

for (ret of value.methods[values[1]].ret) { 
    var names = Object.keys(ret) 
    console.log(JSON.stringify(ret, null, 2)) 
    if (names[0] == "N/A") { 
     methodString = methodString.concat(` ${ret.type}`); 
    } 
    else { 
     methodString = methodString.concat(` ${names[0]} (${ret.type}),`); 
    } 
    } 

Auf der 3. Zeile des Codebeispiels oben ich das Objekt auszudrucken bin und das ist die Konsolenausgabe

{ 
    "newPosition": { 
    "type": "table" 
    } 
} 

So type innen existiert von newPosition aber wenn ich versuche, es entweder auf Zeile 5 oder Zeile 8 zuzugreifen, heißt es, dass es nicht definiert ist. Wenn überprüft wird, ob die Eigenschaft mit der Elementfunktion hasOwnProperty existiert, wird false zurückgegeben.

Ich bin wirklich davon ratlos und ich weiß nicht, was zu tun ist. Ich habe mir hier viele Antworten auf den Stack-Overflow angeschaut und keiner von ihnen hat mir eine Antwort auf dieses Problem gegeben.

+0

Was bedeutet 'console.log (ret)' Ausgang? Beachten Sie das Fehlen von 'JSON.stringify'. –

+0

@ JeremyThille es ist das gleiche wie ein Objekt anstelle einer Zeichenfolge. –

Antwort

1

Das Problem ist, dass ret.typeundefined ist.

Was Sie versuchen zu erhalten, ist ret.newPosition.type

+0

Danke! Ich glaube, dass ich dachte, dass ich das nicht brauchte, weil die Konsole mir das zeigte. Aber ich denke, ich bin es einfach leid, diesen Code anzusehen: P –

+0

Total. Ich musste es laufen lassen, weil ich auch verwirrt war;) Wo ich in der Objektebene bin, stolpert mich die ganze Zeit über – sparrow

Verwandte Themen