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 に答える