Учитывая мои основные данные такие как:
var data = [
{ name: "Student01", type: "received", grades: [ 12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15 ] },
{ name: "Student02", type: "given", grades: [ 11,6,15, 12 ] },
{ name: "Student03", type: "received", grades: [ 12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15 ] },
{ name: "Student04", type: "given", grades: [ 12,8,13, 12 ] }
];
Учитывая шаблон объекта , который я должен уважать:
var template = {
text: "Hello guys !",
side: "negative",
name: "Some student",
x: [ 12.65, 17.92, 16.45 ],
orientation: "h"
};
Затем я создаю augmentedData
через цикл for :
var augmentedData = [];
for (var i=0; i<data.length;i++){
var trace = template,
student = data[i];
trace.text = "Step "+i;
trace.name = student.name;
trace.x = student.grades;
console.log(student, student.type)
trace.side = student.type == "given"?"negative":"positive";
console.log(vizGrades[i].type, trace, trace.side)
augmentedData.push(trace);
}
Мои последние дополненные данные состоят из 4-х кратных последнего объекта, сам аугментированный:
console.log(JSON.stringify(augmentedData));
возвращается:
[
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"}
];
Что не так? Как это исправить?
РЕДАКТИРОВАТЬ: Ожидаемый результат:
[
{"text":"Step 0","side":"positive","name":"Student01","x":[12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15],"orientation":"h"},
{"text":"Step 1","side":"negative","name":"Student02","x":[11,6,15, 12],"orientation":"h"},
{"text":"Step 2","side":"positive","name":"Student03","x":[12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"}
];