2017-06-01 41 views
1

我有一個對象,在JavaScript中有我正在尋找的屬性,但是當我嘗試訪問該屬性時,它是未定義的。對象中的屬性存在,但未定義

這裏是我的代碼:

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}),`); 
    } 
    } 

的代碼示例的第3行以上,我打印出來的對象,這是控制檯輸出

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

所以type不存在內newPosition,但是當我嘗試在第5行或第8行訪問它時,它表示它是未定義的。當檢查屬性是否存在與hasOwnProperty成員函數時,它返回false

我真的被這個難住了,我不知道該怎麼辦。我已經在堆棧溢出的問題上看了很多答案,他們都沒有提供給我這個問題的答案。

+0

'console.log(ret)'輸出什麼?注意不存在'JSON.stringify'。 –

+0

@JeremyThille它和物體而不是字符串一樣。 –

回答

1

問題是ret.typeundefined

你想要得到的是什麼ret.newPosition.type

+0

謝謝!因爲控制檯向我展示了什麼,我相信我一直在想我並不需要這些。但我想我只是厭倦了看這段代碼:P –

+0

完全。我不得不去運行它,因爲我也很困惑;)我在對象層次上的所有時間都在絆倒我 – sparrow

相關問題