Мне нужно установить динамическое имя свойства объекта JS.
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
Результат должен быть:
data = {
1name: 'name1'
2name: 'name1'
}
Мне нужно установить динамическое имя свойства объекта 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++) {
jsonVariable[i + 'name'] = 'name' + i;
}
Вам нужно использовать нотацию []
для динамического набора ключей.
var jsonVariable = {};
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1';
}
Теперь в ES6 вы можете использовать синтаксис литерала объекта для динамического создания ключей объектов, просто оберните переменную в []
var key = i + 'name';
data = {
[key] : 'name1',
}
С ECMAScript 6 вы можете использовать имена свойств переменной с синтаксисом литерала объекта, например:
var keyName = 'myKey';
var obj = {
[keyName]: 1
};
obj.myKey;//1
Этот синтаксис доступен в следующих новых браузерах:
Edge 12+ (поддержка IE), FF34 +, Chrome 44+, Opera 31+, Safari 7.1 +
(https://kangax.github.io/compat-table/es6/)
Вы можете добавить поддержку старых браузеров, используя transpiler, например babel. Легко трансформировать весь проект, если вы используете модуль-расслоение, например rollup или webpack.
Это способ динамически установить значение
var jsonVariable = {};
for (var i = 1; i < 3; i++) {
var jsonKey = i + 'name';
jsonVariable[jsonKey] = 'name' + i;
}
Не имеет значения, откуда приходит переменная. Главное, у нас есть один... Задайте имя переменной между квадратными скобками "[..]".
var optionName = 'nameA';
var JsonVar = {
[optionName] : 'some value'
}
data = {
[key] : 'name1'
}
jsonVariable = {}
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1'
}
это будет похоже на
jsonVariable = {
1name : 'name1'
2name : 'name1'
}
Следуя приведенному выше комментарию Sainath SR, я смог установить имя свойства объекта js из переменной в скрипте Google Apps (которая пока не поддерживает ES6), определив объект, а затем определив другой ключ/значение вне объекта:
var salesperson = ...
var mailchimpInterests = {
"aGroupId": true,
};
mailchimpInterests[salesperson] = true;
проверьте это
jsonVariable = {};
for(i=1; i<=3; i++) {
jsonVariable[i]=i+'name';
}
document.writeln(jsonVariable[1]);
document.writeln(jsonVariable[2]);
document.writeln(jsonVariable[3]);