В настоящее время я получаю объект из полезной нагрузки, который я хочу отформатировать по существу в строку, основанную на значениях внутри этого объекта. У меня есть решение, но я на самом деле не большой его поклонник и знаю, что, скорее всего, есть более практичный способ его решения.
объект, который возвращается в полезную нагрузку, выглядит следующим образом
{
sundayUsage: false,
mondayUsage: true,
tuesdayUsage: false,
wednesdayUsage: true,
thursdayUsage: true,
fridayUsage: true,
saturdayUsage: false
}
Исходя из этих значений, я хочу иметь возможность отображать другую строку.
Вот мое текущее решение
function formatSchedule(schedule) {
let days = []
let convertedSchedule = Object.keys(schedule).map(x => ({
available: schedule[x],
label: x.slice(0, 3).replace(/^[^ ]/g, match => match.toUpperCase())
}))
convertedSchedule.map(x => {
if (x.available) {
days.push(x.label)
}
return days
})
if (
days.includes('Mon' && 'Tue' && 'Wed' && 'Thu' && 'Fri' && 'Sat' && 'Sun')
) {
return 'Everyday'
} else if (
days.includes('Mon' && 'Tue' && 'Wed' && 'Thu' && 'Fri') &&
!days.includes('Sat' && 'Sun')
) {
return 'Weekdays (Mon-Fri)'
} else if (
days.includes('Sat' && 'Sun') &&
!days.includes('Mon' && 'Tue' && 'Wed' && 'Thu' && 'Fri')
) {
return 'Weekends (Sat-Sun)'
} else return days.join(', ')
}
Я не чувствую, что привлечение внешней библиотеки является необходимым, но я открыт для изучения предложений, если в конечном итоге это станет подходящим инструментом для работы.