Я создал метод, который возвращает несколько mappedObjecst, которые содержат идентификатор и ежедневные часы.
Это код, который возвращает отображение:
return Object.keys(tableData).map(key => {
const mappedObject = {
id: key
};
tableData[key].forEach(weekday => {
mappedObject[weekday.day] = Math.round( (weekday.spent / 3600) * 10) / 10;
});
return mappedObject;
});
вот возвращаемые mappedObjects:
{id: "c94.33", MON: 8, WED: 3.2, FRI: 5.3}
{id: "c.005.001", THU: 8}
{id: "unspecified", TUE: 8, WED: 4.8, FRI: 2.7}
Как сделать подсчеты часов под каждым идентификатором?
Например:
с94,33: 16,5
c.005.001: 8
не указано: 15,5
Моя идея и то, что я попробовал:
-создать массив и .push в массив значения mappedObject.
return Object.keys(tableData).map(key => {
const mappedObject = {
id: key
};
tableData[key].forEach(weekday => {
mappedObject[weekday.day] = Math.round( (weekday.spent / 3600) * 10) / 10;
this.totalHoursPerid.push(_.sum(_.values(mappedObject)));
console.log(this.totalHoursPerid);
});
return mappedObject;
});
}
это не работает, потому что ключ id имеет строковое значение (по крайней мере, так я думаю).
Как и просили в комментариях, это анализируемые данные таблицы:
{c94.33:
[{day: "MON", spent: 28800},
{day: "WED", spent: 11400},
{day: "FRI", spent: 19200}],
c.005.001:
[{day: "THU", spent: 28800}],
unspecified:
[{day: "TUE", spent: 28800},
{day: "WED", spent: 17400},
{day: "FRI", spent: 9600}]
}