2013-06-26 89 views
5

我試圖使用Object.keys(obj.arr));方法訪問對象內部的數組。如果我直接訪問陣列等之下,則它給正確的輸出:Uncaught TypeError:在嘗試訪問對象時調用非對象的Object.keys

alert(Object.keys(obj.arr)); 

但如果我使用參數傳遞數組名稱然後它給錯誤:

var selected = "arr"; 
alert(Object.keys(obj.arr)); 

error : Uncaught TypeError: Object.keys called on non-object 

有例如:DEMO

+0

都做同樣的事情 – Esailija

回答

3

如果您需要動態屬性訪問,則不能使用.value。這總是從字面上訪問"value"的指定密鑰。如果你想用變量value你需要使用括號鍵名來訪問屬性:obj[value]

固定演示:http://jsfiddle.net/Lv6TY/7/你片斷

console.log("Variable Pass "+Object.keys(groups[selected])); 
+0

這就是答案。是的,它滑落了我的腦海。 – apaleja

相關問題