私は、配列キーが次のような変数から作成された配列を構築しています。
var art = $('#article_id').val();
var stk = $('#stk').val();
elements ={ art : stk };
alert(elements[art]);
しかし、私art=>50
は代わりにこの出力で終わります5123=>50
私は、配列キーが次のような変数から作成された配列を構築しています。
var art = $('#article_id').val();
var stk = $('#stk').val();
elements ={ art : stk };
alert(elements[art]);
しかし、私art=>50
は代わりにこの出力で終わります5123=>50
ES 2015 は、計算されたプロパティ名と呼ばれる機能を通じてこれをサポートします (ただし、仕様の関連セクションは「オブジェクト初期化子」と呼ばれます)。
簡単に言えば、変数 (通常は任意の式) を角括弧で囲んで評価し、結果をプロパティ名として使用します。あなたの例では、それは
elements = { [art]: stk };
そのようなオブジェクト リテラルを作成することはできません。あなたは書く必要があります
elements = {};
elements[art] = stk;
elements = { art: stk }
動作しない理由は、 elements = { "art": stk }
(引用符付き) と同等であるためです。が正当な識別子である限り、2 つのバージョンは JavaScript で同等でart
あり、2 番目のバージョンは何が起こっているかを明確にします。
以下を使用して、動的キーをオブジェクトに追加します。
elements = {};
elements[art] = stk;