Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将动态对象推入阵列?_Javascript_Arrays_Object_Loops_Dynamic - Fatal编程技术网

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);
    })()