Javascript动态地向对象添加值

时间:2015-09-29 19:35:05

标签: javascript arrays object dynamically-generated

让我知道我有这样的事情:

$scope.playersData =   [{
    "label": obj.data[0].player,
    "color": colors[0],
    "data": obj.data[0].value
}, {
    "label": obj.data[1].player,
    "color": colors[1],
    "data": obj.data[1].value
}];

如果我在obj.data中只有2个项目,那么这是有效的。

现在,如果我想在For循环中动态添加值,我该怎么做?

我试过这样的事情,没有工作:

var temparray = [];
for (var i = 0; i < data.length; i++) { 
    temparray[i] = {"label": obj.data[i].player,"color": colors[i],"data": obj.data[i].value};
}

2 个答案:

答案 0 :(得分:1)

你能试试吗?

var temparray = [];
for (var i = 0; i < data.length; i++) { 
    var item = {"label": obj.data[i].player,"color": colors[i],"data": obj.data[i].value};
    temparray.push(item);  //. <---added
}

答案 1 :(得分:1)

有一个错误:从data.length替换为obj.data.length

此外,您可以使用push将元素添加到数组中。

var temparray = [];
for (var i = 0; i < obj.data.length; i++) { 
    temparray.push({"label": obj.data[i].player,"color": colors[i],"data": obj.data[i].value});
}