2017-08-11 9 views
0

javavscriptコードに複数のハッシュマップがあり、関数に渡された名前に従って関連するマップを動的にロードしようとしています。JavaScriptは文字列名を使用してハッシュマップを参照することができません

問題は、文字列値として値を渡すときに、実際に参照するオブジェクトではなく文字列のキーを取得しようとしたときです。

このjsfiddleは私の問題を正しく示しています。

Line 13は、期待される出力を示しますが、Line 14は、文字列名からキーを作成します。

+1

名前を関連オブジェクトに関連付ける別のマップを作成するか、この特殊なケースのグローバル変数は 'window'のプロパティです。 – ASDFGerte

+0

Object.keys(ウィンドウ[name])、あなたのコードは意味をなしません –

+0

@Jonasw私は、正確に何を意味するのか分かりませんか?私は自分のコードの関連部分をフィドルに追加しようとしました – anonn023432

答えて

0
間の基本的相違

その:

Object.keys(PROP_ONE) 

Object.keys("PROP_ONE") 

最初のオブジェクトに解決識別子であるが、第二つだけの文字列です。それ以上ではない。あなたが原因ウィンドウのその一部という事実にブラケット表記を使用してアクセスすることができます。

Object.keys(window["PROP_ONE"]) 

免責事項:すべての中

すべて本当にneccessary場合、動的なキーだけを使用する必要があります。彼らはあなたのコードをより遅く、バギーにします。

関連する問題