Javascript には、次のオブジェクトがあります。
obj = { one: "foo", two: "bar" };
今、私はこれをしたい
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
しかし、もちろんうまくいきません。このオブジェクトを動的に参照する正しい方法は何ですか?
Javascript には、次のオブジェクトがあります。
obj = { one: "foo", two: "bar" };
今、私はこれをしたい
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
しかし、もちろんうまくいきません。このオブジェクトを動的に参照する正しい方法は何ですか?
簡潔な答え:obj[a]
長い答え:キーがスペース、ドット、またはその他の厄介なものを含まない定数文字列である特殊なケースのobj.field
単なる省略形です。obj["field"]
あなたの質問では、キーは定数ではなかったため、完全な構文を使用してください。
このような:
obj[a]
補足として、グローバル変数は「ウィンドウ」オブジェクトにアタッチされているため、次のことができます
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
これにより、「こんにちは、こんにちは、こんにちは」というアラートが表示されます