未捕获的TypeError:尝试访问对象时在非对象上调用Object.keys

apa*_*eja 5 javascript arrays jquery object

我试图使用Object.keys(obj.arr));方法访问对象内的数组.如果我像下面一样直接访问数组,那么它会给出正确的输出:

 alert(Object.keys(obj.arr));
Run Code Online (Sandbox Code Playgroud)

但如果我使用参数传递数组名称,那么它会给出错误:

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

error : Uncaught TypeError: Object.keys called on non-object 
Run Code Online (Sandbox Code Playgroud)

有例子:DEMO

Esa*_*ija 3

如果您需要动态属性访问,则不能使用.value. 这始终是字面上访问 的命名密钥 "value"。如果您想使用变量中包含的键名称访问属性,value则需要使用括号:obj[value]

修复演示:http://jsfiddle.net/Lv6TY/7/

console.log("Variable Pass "+Object.keys(groups[selected]));
Run Code Online (Sandbox Code Playgroud)