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) => {
	const dateA = stringTimeToDate(objDataA.start);
  const dateB = stringTimeToDate(objDataB.start);
   
  let result = 0;
  if (dateA !== dateB) {
  	result = dateA < dateB ? -1 : 1;
  } 
  
  return result;
});

console.log()