7

私が欲しいのは、Pythonで毎日行うことです。JS では動作しません。おそらく、私が JS を吸っているからです。

これは、私が望むことを行うPythonコードです:

>key = 'just_a_key'
>value = 5
>dict = {key: value}
>dict
{'just_a_key':5}
>dict['just_a_key'}
5

これは JS では機能しません。そこにあるキーは単に「key」という名前になります。これは、ここで実際に辞書を作成しているわけではなく、同じコードを記述するときに json を使用してオブジェクトを作成しているためです。だから私の質問は次のとおりです:JSでオブジェクトの「キー」(またはプロパティ?)にプログラムで名前を付けるにはどうすればよいですか?

4

2 に答える 2

17

このような:

dict = {};

dict[key] = value;

JavaScript は、オブジェクト リテラル表記のプロパティ名の式を評価しませんが、オブジェクト メンバー演算子の角括弧形式を使用すると評価します。

MDN メンバー オペレーター

于 2012-05-17T17:26:28.430 に答える
12

更新: この回答はもともと 2012 年に書かれたものですが、ES2015/ES6 Computed Property Namesを使用するより良い方法があります。前の例 (以下を参照) は、次のように記述できます。

const key = 'just_a_key';

const obj = { [key]: 5 };

JavaScript のオブジェクト リテラル構文に慣れていない場合は、ここで重要な点は、動的キー名を囲む括弧 (つまり、[key]) であることに注意してください。括弧は、key(またはその他の内容) をリテラル値として使用するのではなく、式として解釈する必要があることを示します。


元の回答/ES6以前のソリューション:

var obj = {},
    key = 'just_a_key';

obj[key] = 5;
于 2012-05-17T17:26:48.267 に答える