Ich muss einen JS-Objekteigenschaftsnamen dynamisch festlegen.
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
Ergebnis sollte sein:
data = {
1name: 'name1'
2name: 'name1'
}
Ich muss einen JS-Objekteigenschaftsnamen dynamisch festlegen.
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
Ergebnis sollte sein:
data = {
1name: 'name1'
2name: 'name1'
}
Antworten:
var jsonVariable = {};
for(var i=1; i < 3; i++) {
jsonVariable[i + 'name'] = 'name' + i;
}
Sie müssen die []Notation verwenden, um Schlüssel dynamisch festzulegen.
var jsonVariable = {};
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1';
}
In ES6 können Sie jetzt die Objektliteral-Syntax verwenden, um Objektschlüssel dynamisch zu erstellen. Fügen Sie einfach die Variable ein []
var key = i + 'name';
data = {
[key] : 'name1',
}
Mit ECMAScript 6 können Sie variable Eigenschaftsnamen mit der Objektliteral-Syntax wie folgt verwenden:
var keyName = 'myKey';
var obj = {
[keyName]: 1
};
obj.myKey;//1
Diese Syntax ist in den folgenden neueren Browsern verfügbar:
Edge 12+ (keine IE-Unterstützung), FF34 +, Chrome 44+, Opera 31+, Safari 7.1+
( https://kangax.github.io/compat-table/es6/ )
Sie können älteren Browsern Unterstützung hinzufügen, indem Sie einen Transpiler wie babel verwenden . Es ist einfach, ein gesamtes Projekt zu transpilieren, wenn Sie einen Modulbündler wie Rollup oder Webpack verwenden .
Verwenden Sie eine Variable als Objektschlüssel
let key = 'myKey';
let data = {[key] : 'name1'; }
Es spielt keine Rolle, woher die Variable kommt. Hauptsache wir haben eins ... Setzen Sie den Variablennamen in eckige Klammern "[..]".
var optionName = 'nameA';
var JsonVar = {
[optionName] : 'some value'
}
In Anlehnung an den obigen Kommentar von Sainath SR konnte ich einen js-Objekteigenschaftsnamen aus einer Variablen in Google Apps Script (die ES6 noch nicht unterstützt) festlegen, indem ich das Objekt definierte und dann einen anderen Schlüssel / Wert außerhalb des Objekts definierte:
var salesperson = ...
var mailchimpInterests = {
"aGroupId": true,
};
mailchimpInterests[salesperson] = true;