2015-09-29 2 views
0

Давайте supose у меня есть что-то вроде этого:Javascript добавить значения в объект динамически

$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.

Теперь, если я хочу динамически добавлять значения в For Loop, как это сделать?

Я пытался что-то вроде этого, не работает:

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

Вы всегда можете использовать '.push()', но даже при его наличии это должно быть достаточно хорошим. Что именно здесь не работает? Кстати, не стоит ли вместо этого проверять 'i raina77ow

+0

Пожалуйста, подумайте над добавлением JSfiddle, чтобы показать свою текущую ошибку. –

+0

это 'data.length' или' obj.data.length'? –

ответ

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

Существует одна ошибка: заменить из 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}); 
} 
Смежные вопросы