未捕获的类型错误:尝试访问对象时调用非对象的 Object.keys

2024-01-05

我正在尝试使用访问对象内部的数组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 http://jsfiddle.net/Lv6TY/6/


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

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

console.log("Variable Pass "+Object.keys(groups[selected]));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未捕获的类型错误:尝试访问对象时调用非对象的 Object.keys 的相关文章

随机推荐