mergeConsecutiveEvents(events) {
if (events.length < 2) return events; // 如果事件少于两个,则无需合并
let mergedEvents = [events[0]]; // 初始化结果数组,包含第一个事件
for (let i = 1; i < events.length; i++) {
const lastMergedEvent = mergedEvents[mergedEvents.length - 1];
const currentEvent = events[i];
if (lastMergedEvent.jssj === currentEvent.kssj) {
// 如果上一个事件的结束时间和当前事件的开始时间相同,则合并它们
lastMergedEvent.jssj = currentEvent.jssj;
} else {
// 如果不连续,则添加当前事件到结果数组中
mergedEvents.push(currentEvent);
}
}
return mergedEvents;
}
const dates=[
{kssj:'2025-12-05 10:00:00',jssj:'2025-12-05 10:30:00'},
{kssj:'2025-12-05 10:30:00',jssj:'2025-12-05 11:00:00'},
{kssj:'2025-12-05 11:00:00',jssj:'2025-12-05 11:30:00'},
]
const newDates=mergeConsecutiveEvents(datas)
// newDates = [{kssj:'2025-12-05 10:00:00',jssj:'2025-12-05 11:30:00'}]
来源:豆包