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

时间:2013-06-26 11:56:20

标签: javascript jquery arrays object

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

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

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

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

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

有例子: DEMO

1 个答案:

答案 0 :(得分:3)

如果您需要动态媒体资源访问权限,则无法使用.value。这总是字面上访问"value"的命名键。如果要使用变量value中包含的键名访问属性,则需要使用括号:obj[value]

修正了演示:http://jsfiddle.net/Lv6TY/7/

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