5

我正在尝试使用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

4

1 回答 1

3

如果您需要动态属性访问,则不能使用.value. 那总是从字面上访问命名键 "value"。如果要使用包含在变量中的键名访问属性,则value需要使用括号:obj[value]

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

console.log("Variable Pass "+Object.keys(groups[selected]));
于 2013-06-26T12:05:54.060 回答