我正在尝试将对象添加到数组中,但我希望名称和值是动态的。这是一个例子:
(function(){
var data = [];
for(i=0; i<5; i++){
data.push({'name' + i: i});
}
console.log(data);
})()
我想我不能对属性使用变量,所以我不知道该怎么做。
我正在尝试将对象添加到数组中,但我希望名称和值是动态的。这是一个例子:
(function(){
var data = [];
for(i=0; i<5; i++){
data.push({'name' + i: i});
}
console.log(data);
})()
我想我不能对属性使用变量,所以我不知道该怎么做。
如果要使用动态命名的属性,则需要使用数组访问表示法:
var temp = {};
temp['name' + i] = i;
data.push(temp);
在 IIFE 中:
(function(){
var data,
temp,
i;
data = [];
for (i = 0; i < 5; i += 1) {
temp = {};
temp['name' + i] = i;
data.push(temp);
}
console.log(data);
}());
修改后的代码:可以使用'[]'将基于变量值的键添加到对象中。jsfiddle
(function(){
var data = [], a;
for(i=0; i<5; i++){
a = {};
a['name' + i] = i;
data.push(a);
}
console.log(data);
})()
像这样:
for(i=0; i<5; i++){
var obj = {};
obj["name" + i] = i;
data.push(obj);
}
但我想知道您为什么要将索引硬编码到属性名称中。
由于您有一个数组,因此您已经有一个关联的索引。这也使得该属性难以查找。
如果您需要原始索引的关联,我会使用单独的属性。
for(i=0; i<5; i++){
data.push({name: i, idx: i});
}