const weekDays = {
1: 'Понедельник',
2: 'Вторник',
3: 'Среда',
4: 'Четверг',
5: 'Пятница',
6: 'Суббота',
0: 'Воскресенье'
};
const workingHours = [{
'open_weekday': 1,
'close_weekday': 2,
'open_hours': 12,
'close_hours': 4,
'open_minutes': 0,
'close_minutes': 0,
'enabled': true
}, {
'open_weekday': 2,
'close_weekday': 2,
'open_hours': 12,
'close_hours': 17,
'open_minutes': 0,
'close_minutes': 0,
'enabled': true
}, {
'open_weekday': 3,
'close_weekday': 3,
'open_hours': 9,
'close_hours': 21,
'open_minutes': 0,
'close_minutes': 0,
'enabled': true
}, {
'open_weekday': 4,
'close_weekday': 4,
'open_hours': 9,
'close_hours': 13,
'open_minutes': 0,
'close_minutes': 0,
'enabled': true
}, {
'open_weekday': 4,
'close_weekday': 4,
'open_hours': 14,
'close_hours': 21,
'open_minutes': 0,
'close_minutes': 0,
'enabled': true
}];
function getWorkingHours(workingHours, weekDays) {
return workingHours.map(workingHour => {
if (workingHour.open_weekday !== workingHour.close_weekday) {
return [{
day: weekDays[workingHour.open_weekday],
open: `${`${workingHour.open_hours}`.padStart(2, 0)}:${`${workingHour.open_minutes}`.padStart(2, 0)}`,
close: `00:00`
}, {
day: weekDays[workingHour.close_weekday],
open: `00:00`,
close: `${`${workingHour.close_hours}`.padStart(2, 0)}:${`${workingHour.close_minutes}`.padStart(2, 0)}`
}]
}
return {
day: weekDays[workingHour.open_weekday],
open: `${`${workingHour.open_hours}`.padStart(2, 0)}:${`${workingHour.open_minutes}`.padStart(2, 0)}`,
close: `${`${workingHour.close_hours}`.padStart(2, 0)}:${`${workingHour.close_minutes}`.padStart(2, 0)}`
}
}).flat().map((time, index, array) => {
if (index === 0) {
return `${time.day}: с ${time.open} - ${time.close}`;
} else if (array[index - 1].day == time.day) {
return `, с ${time.open} - ${time.close}`;
} else {
return `\n${time.day}: с ${time.open} - ${time.close}`
};
}).join('');
};
console.log(getWorkingHours(workingHours, weekDays));