JSFiddle - React, Tailwind, and code Playground

by zav19791979

JavaScript

const stringTimeToDate = (stringTime) => {
	const timeParts = stringTime.split(':').map((timePart) => parseFloat(timePart, 10));
  
  const date = new Date(0);
  date.setHours(timeParts[0]);
  date.setMinutes(timeParts[1]);
  
  return date;
};

let obj =  {
0: {title: "событие 5", start: "02:30", end: "06:00", week: "Thursday"},
1: {title: "событие 1", start: "06:00", end: "15:30", week: "Thursday"},
2: {title: "событие 2", start: "15:30", end: "21:00", week: "Thursday"},
3: {title: "событие 3", start: "21:00", end: "00:00", week: "Thursday"},
4: {title: "событие 4", start: "00:00", end: "02:30", week: "Thursday"} 
}

const sortedObjects = Object.values(obj).sort((objDataA, objDataB) => { // sortedObjects - массив обьектов, сортированных по полю start, по возрастанию
	const dateA = stringTimeToDate(objDataA.start);
  const dateB = stringTimeToDate(objDataB.start);
   
  let result = 0;
  if (dateA !== dateB) {
  	result = dateA < dateB ? -1 : 1;
  } 
  
  return result;
});

const etalon = stringTimeToDate('06:00');
const beforeObjects = sortedObjects.filter((object) => stringTimeToDate(object.start) < etalon);
const afterObjects =  sortedObjects.filter((object) => stringTimeToDate(object.start) >= etalon);

console.log('Все сортированные по возрастанию');
console.log(sortedObjects);

console.log('Сортированные по возрастанию, до 06:00');
console.log(beforeObjects);
console.log(afterObjects);