【发布时间】:2020-10-23 10:48:51
【问题描述】:
我正在尝试循环遍历一个数组并按时间顺序拉出最近/下一个会议对象。
每个对象都有一个开始和结束时间,但我想知道当前事件或将要发生的下一个事件是什么。未能获得最后一个事件。
例如
const meetings = [{title:"morning",startAt:new Date("2020-10-14 7:00"),
endAt:new Date("2020-10-14 8:00")},
{title:"evening",startAt:new Date("2020-10-14 20:00"),
endAt:new Date("2020-10-14 21:00")},
{title:"afternoon",startAt:new Date("2020-10-14 15:00"),
endAt:new Date("2020-10-14 15:12")}]
// results:
"2020-10-14 01:00" // morning
"2020-10-14 07:30" // morning
"2020-10-14 08:01" // afternoon
"2020-10-14 15:00" // afternoon
"2020-10-14 15:12" // afternoon
"2020-10-14 15:13" // evening
"2020-10-14 21:00" // evening
"2020-10-14 23:59" // evening
这是我目前所拥有的:
const targetDate = new Date("2020-10-14 15:12")
meetings.reduce((found,meeting)=>{
if( ! found){
return meeting
} else if( meeting.startAt > targetDate
&&( found.startAt < targetDate
|| meeting.startAt < found.startAt)){
return meeting
}
return found
},{}))
【问题讨论】:
标签: javascript date sorting datetime time