Я работаю с fullcalendar-реагировать, и у меня есть следующее расписание, где я пытаюсь получить самый ранний час в списке и убрать закрытые дни:
export default {
monday: {
startTime: '10:00',
endTime: '23:00'
},
tuesday: {
startTime: '08:00',
endTime: '00:00'
},
wednesday: {
startTime: '09:00',
endTime: '22:00'
},
thursday: {
startTime: '14:00',
endTime: '00:00'
},
friday: undefined,
saturday: {
startTime: '13:00',
endTime: '21:00'
},
sunday: undefined
}
Чтобы отфильтровать закрытые дни и получить самый ранний час, я работаю с фильтрами и сокращениями, как показано ниже:
getOpeningHour() {
let value: any = "00:00:00";
if (this.props.schedule) {
const schedule = this.props.schedule; // the schedule I presented above
if (Object.keys(schedule).length >= 1) {
const minValue = Object.keys(schedule)
.filter((key) => schedule[key])
.map((key: string) => moment(schedule[key].startTime, 'HH:mm'))
.reduce((min: moment.Moment, value: moment.Moment) => (!min || value.isBefore(min) ? value : min), moment('00:00', 'HH:mm'));
// Gets the earliest hour when the list is not empty, but when I give midnight as default value, it's always midnight.
value = minValue.format('HH:mm:ss');
}
}
return value;
}
Когда я открываю календарь, я получаю эту ошибку:
Uncaught TypeError: Уменьшение пустого массива без начального значения
Я пытался указать , moment('00:00', 'HH:mm')
в качестве значения по умолчанию, когда список пуст, но вот так мой календарь всегда начинается в полночь и, я думаю, игнорирует все остальное.
----- EDIT -----
Код фактически выполняет свою работу, и, поскольку полночь раньше 08:00, он будет отображать полночь. Единственное - отображать полночь только тогда, когда список пуст.
Как я могу исправить эту проблему, когда я работаю с моментом () часов?
Спасибо!