Vin*_*abu 163 javascript
我需要动态设置JS对象属性名称.
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
Run Code Online (Sandbox Code Playgroud)
结果应该是:
data = {
1name: 'name1'
2name: 'name1'
}
Run Code Online (Sandbox Code Playgroud)
clo*_*ure 178
var jsonVariable = {};
for(var i=1; i < 3; i++) {
jsonVariable[i + 'name'] = 'name' + i;
}
Run Code Online (Sandbox Code Playgroud)
Mus*_*usa 147
您必须使用[]表示法动态设置密钥.
var jsonVariable = {};
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1';
}
Run Code Online (Sandbox Code Playgroud)
现在在ES6中,您可以使用对象文字语法动态创建对象键,只需将变量包装在其中 []
var key = i + 'name';
data = {
[key] : 'name1',
}
Run Code Online (Sandbox Code Playgroud)
chi*_*NUT 118
使用ECMAScript 6,您可以将变量属性名称与对象文字语法一起使用,如下所示:
var keyName = 'myKey';
var obj = {
[keyName]: 1
};
obj.myKey;//1
Run Code Online (Sandbox Code Playgroud)
以下较新的浏览器中提供了此语法:
Edge 12+(无IE支持),FF34 +,Chrome 44+,Opera 31 +,Safari 7.1+
(https://kangax.github.io/compat-table/es6/)
您可以使用诸如babel之类的转换器为旧版浏览器添加支持.如果使用模块捆绑器(如汇总或webpack),则很容易转换整个项目.
tim*_*imc 22
这是动态设置值的方法
var jsonVariable = {};
for (var i = 1; i < 3; i++) {
var jsonKey = i + 'name';
jsonVariable[jsonKey] = 'name' + i;
}
Run Code Online (Sandbox Code Playgroud)
Bor*_*try 11
Use a variable as an object key
let key = 'myKey';
let data = {[key] : 'name1'; }
Run Code Online (Sandbox Code Playgroud)
See How to iterete on your object here
小智 7
变量来自何处并不重要.主要的是我们有一个...在方括号"[..]"之间设置变量名称.
var optionName = 'nameA';
var JsonVar = {
[optionName] : 'some value'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127915 次 |
| 最近记录: |