我需要动态设置一个 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/ )
您可以使用转译器(例如babel )来添加对旧浏览器的支持。如果您使用诸如rollup或webpack 之类的module打包器,则很容易转译整个项目。
这是动态设置值的方式
var jsonVariable = {};
for (var i = 1; i < 3; i++) {
var jsonKey = i + 'name';
jsonVariable[jsonKey] = 'name' + i;
}