我需要动态设置一个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(var i=1; i < 3; i++) {
  jsonVariable[i + 'name'] = 'name' + i;        
}

使用变量作为对象键

let key = 'myKey';

let data = {[key] : '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++) {        
   var jsonKey  = i+'name';
   jsonVariable[jsonKey] = 'name1'
}

这和

    jsonVariable = {
    1name : 'name1'
    2name : 'name1'
}

沿着上面Sainath S.R的评论,我能够从谷歌Apps Script(还不支持ES6)的变量中设置一个js对象属性名,通过定义对象,然后在对象之外定义另一个键/值:

var salesperson = ...

var mailchimpInterests = { 
        "aGroupId": true,
    };

mailchimpInterests[salesperson] = true;