Javascript 如何将动态对象推入阵列?
可能重复:Javascript 如何将动态对象推入阵列?,javascript,arrays,object,loops,dynamic,Javascript,Arrays,Object,Loops,Dynamic,可能重复: 我试图将对象添加到数组中,但我希望名称和值是动态的。下面是一个例子: (function(){ var data = []; for(i=0; i<5; i++){ data.push({'name' + i: i}); } console.log(data); })() (函数(){ var数据=[]; 对于(i=0;i,如下所示: for(i=0; i<5; i++
我试图将对象添加到数组中,但我希望名称和值是动态的。下面是一个例子:
(function(){
var data = [];
for(i=0; i<5; i++){
data.push({'name' + i: i});
}
console.log(data);
})()
(函数(){
var数据=[];
对于(i=0;i,如下所示:
for(i=0; i<5; i++){
var obj = {};
obj["name" + i] = i;
data.push(obj);
}
for(i=0;i如果要使用动态命名的属性,需要使用数组访问表示法:
var temp = {};
temp['name' + i] = i;
data.push(temp);
一生中:
(函数(){
var数据,
临时雇员
我
数据=[];
对于(i=0;i<5;i+=1){
温度={};
温度['name'+i]=i;
数据推送(temp);
}
控制台日志(数据);
}());
修改的代码:可以使用“[]”在对象中添加基于变量值的键
(函数(){
var数据=[],a;
对于(i=0;i虽然下面的答案是正确的,但我必须问你为什么要这样做?你必须以一种尴尬的方式访问它:data[i]['name'+i]
获取i
…这是毫无意义的。@shmiddy这只是我做的一个简单的例子,所以我不会用不必要的细节来混淆任何人。但是,问题是,如果你将项目推到一个数组中,数据[i]['name'+i]
是毫无意义的。为什么不直接使用数据[i].name
?
var temp = {};
temp['name' + i] = i;
data.push(temp);
(function(){
var data,
temp,
i;
data = [];
for (i = 0; i < 5; i += 1) {
temp = {};
temp['name' + i] = i;
data.push(temp);
}
console.log(data);
}());
(function(){
var data = [], a;
for(i=0; i<5; i++){
a = {};
a['name' + i] = i;
data.push(a);
}
console.log(data);
})()