JSオブジェクトのプロパティ名を動的に設定する必要があります。変数からJSオブジェクトのプロパティ名を設定する方法
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
結果は次のようになります。
data = {
1name: 'name1'
2name: 'name1'
}
JSオブジェクトのプロパティ名を動的に設定する必要があります。変数からJSオブジェクトのプロパティ名を設定する方法
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
結果は次のようになります。
data = {
1name: 'name1'
2name: 'name1'
}
これは、動的にあなたが動的にキーを設定する[]
表記を使用する必要があります値
var jsonVariable = {};
for (var i = 1; i < 3; i++) {
var jsonKey = i + 'name';
jsonVariable[jsonKey] = 'name' + i;
}
チェックこのアウト
jsonVariable = {};
for(i=1; i<=3; i++) {
jsonVariable[i]=i+'name';
}
document.writeln(jsonVariable[1]);
document.writeln(jsonVariable[2]);
document.writeln(jsonVariable[3]);
jsonVariable = {}
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1'
}
この意志に変数をラップする、動的オブジェクトキーを作成するにはオブジェクトリテラル構文を使用することができます類似するもの
ECMAScriptの6では、あなたがこのように、オブジェクトリテラル構文を使用して変数のプロパティ名を使用することができます(
エッジ12+:
var keyName = 'myKey'; var obj = { [keyName]: 1 }; obj.myKey;//1
をこの構文は、次の新しいブラウザで利用可能ですIEのサポートされていません)、FF34 +、クロム44+、オペラ31+、サファリ7.1+
(https://kangax.github.io/compat-table/es6/)
ん210babelのようなtranspilerを使用すると、古いブラウザにサポートを追加できます。 rollupやwebpackなどのモジュールバンドラを使用している場合は、プロジェクト全体を簡単に表示できます。
変数の場所は関係ありません。私たちが持っている主なもの... 変数名を大括弧 "[..]"の間に設定します。
var optionName = 'nameA';
var JsonVar = {
[optionName] : 'some value'
}
これはうまくいく、私はそれがすべてのブラウザ/バージョンで動作するのだろうか – Mercury
シーケンシャルな場合、なぜあなたはアレイを使用していませんか? – epascarello
あなたのうち3人が間違った矢を打つのを知りたい。さようなら、気をつけて。 – Charles
[JavaScriptオブジェクトリテラルのキーに変数を使用する]の重複が可能です(http://stackoverflow.com/questions/2274242/using-a-variable-for-a-key-in-a-javascript-object-リテラル) – halfer