在Javascript中迭代添加到对象数组

在Javascript中迭代添加到对象数组,javascript,arrays,object,Javascript,Arrays,Object,我尝试使用以下结构以迭代方式创建对象: var series = { data: [{ name: 'some text', y: 0 }, { name: 'some other text', y: 1 }] } 以下是我目前的代码: var series = { data: [] }; var

我尝试使用以下结构以迭代方式创建对象:

    var series = {
        data: [{
            name:  'some text',
            y: 0
        },
        {
            name:  'some other text',
            y: 1
        }]
    }
以下是我目前的代码:

var series = {
    data: []    
};

var datatemp = {
    y: '',
    name: ''
};

for (var i=0; i<10; i++) {
    datatemp.y = i;
    datatemp.name = "namelabel"+i;
    series.data.push(datatemp);
}
var系列={
数据:[]
};
var DATATTEMP={
y:“”,
名称:“”
};

对于(var i=0;i,您需要为for循环的每次迭代创建一个新的datatemp,否则您每次只是将相同的对象传递到数组中并修改它的值

for (var i=0; i<10; i++) {
    var datatemp = {};
    datatemp.y = i;
    datatemp.name = "namelabel"+i;
    series.data.push(datatemp);
}

for(var i=0;i您需要为for循环的每次迭代创建一个新的datatemp,否则您每次只是将相同的对象传递到数组中并修改它的值

for (var i=0; i<10; i++) {
    var datatemp = {};
    datatemp.y = i;
    datatemp.name = "namelabel"+i;
    series.data.push(datatemp);
}

for(var i=0;i要补充Mimisbrunr所说的内容,您甚至可以这样做:

for (var i=0; i<10; i++) {
    series.data.push({y: i, name: "namelabel"+i});
}

for(var i=0;i要补充Mimisbrunr所说的内容,您甚至可以这样做:

for (var i=0; i<10; i++) {
    series.data.push({y: i, name: "namelabel"+i});
}
for(变量i=0;i
var系列={
数据:[]
};
对于(变量i=0;i
var系列={
数据:[]
};

对于(var i=0;i对象在javascript中通过引用传递,在您的示例中,只有一个对象被名称
datatemp
引用,每次您将新值分配给它的一个成员时,旧成员就会被覆盖,因此您必须为循环的每次迭代创建一个新对象。

对象通过reference传递在javascript中,在您的示例中,只有一个对象被名称
datatemp
引用,每次您将新值分配给它的一个成员时,旧成员就会被覆盖,因此您必须为循环的每次迭代创建一个新对象。

+1。这就是我开始键入的答案(虽然我的有一些额外的换行符)。谢谢,我怀疑这很简单。我是JS新手,大家都知道:)+1。这是我开始输入的答案(虽然我的有一些额外的换行符)。谢谢,我怀疑这很简单。我是JS新手,大家都知道:)