Проблема:
У меня есть Массив объектов, в котором мы получаем количество рабочих часов сотрудника в месяц, например:
{
"allocationId": 227,
"role": "Software Engineer",
"name": "Test User",
"country": "USA",
"state": "TX",
"city": "",
"allocStartDate": "2019-03-09",
"allocEndDate": "2020-03-10",
"allocationHours": [{
"allocationHoursId": 2250,
"allocationId": 227,
"monthYear": "February",
"year": 2020,
"workHours": 60,
"lockStatus": "Y",
"comments": null
},
{
"allocationHoursId": 2251,
"allocationId": 227,
"monthYear": "January",
"year": 2020,
"workHours": 10,
"lockStatus": "N",
"comments": null
},
{
"allocationHoursId": 2254,
"allocationId": 227,
"monthYear": "April",
"year": 2020,
"workHours": 40,
"lockStatus": "N",
"comments": null
}
],
"totalHours": 170
}
Мне нужно отформатировать «часы на часах» по месяцам. года, такого, что для месяца, для которого существуют данные, он присваивается месяцу, иначе мы добавляем нулевые значения к месяцу. Пожалуйста, посмотрите на изображение для ясности:
![enter image description here](https://i.stack.imgur.com/V34KT.png)
Делая рабочие часы за месяц не представлены до 0.
Что я пробовал :
const scrollableTableAttribute = [
{ key: 'January', value: '01' },
{ key: 'February', value: '02' },
{ key: 'March', value: '03' },
{ key: 'April', value: '04' },
{ key: 'May', value: '05' },
{ key: 'June', value: '06' },
{ key: 'July', value: '07' },
{ key: 'August', value: '08' },
{ key: 'September', value: '09' },
{ key: 'October', value: '10' },
{ key: 'November', value: '11' },
{ key: 'December', value: '12' }
];
And in the method -
item.allocationHours.forEach((element) => {
scrollableTableAttribute.map((month) => {
if (element.monthYear === month.key) {
test[month.key] = element;
} else {
test[month.key] = {
workHours: 0, allocationId: item.allocationId,
// tslint:disable-next-line: no-null-keyword
monthYear: month.key, lockStatus: 'N', comment: '', allocationHoursId: null, year: null
};
}
});
});
Это не дает мне требуемого результата, любая помощь будет оценена. Спасибо!