如何将动态对象推入数组?

Dan*_*Dan 3 javascript arrays loops dynamic object

可能重复:
用于定义对象属性名称的Javascript表达式?

我正在尝试将对象添加到数组中,但我希望将名称和值设置为动态.这是一个例子:

    (function(){
        var data = [];

        for(i=0; i<5; i++){
            data.push({'name' + i: i});
    }

        console.log(data);
    })()
Run Code Online (Sandbox Code Playgroud)

我想我不能为属性使用变量,所以我不知道该怎么做.

zzz*_*Bov 9

如果要使用动态命名属性,则需要使用数组访问表示法:

var temp = {};
temp['name' + i] = i;
data.push(temp);
Run Code Online (Sandbox Code Playgroud) 在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);
}());
Run Code Online (Sandbox Code Playgroud)


Ano*_*oop 5

修改后的代码:可以使用"[]"在对象中添加基于变量值的键.的jsfiddle

 (function(){
        var data = [], a;

        for(i=0; i<5; i++){
             a = {};
             a['name' + i] = i;
            data.push(a);
    }

        console.log(data);
    })()
Run Code Online (Sandbox Code Playgroud)