查找彼此在一个时间范围内的对象



我正在使用外部API获取两个日期之间发生的事件列表。然后,我使用array.reduce将同一天发生的事件分组为一个数组。

const time = events && events.reduce((acc, item) => {
if (!acc[item.fixture.date.split('T')[1]]) {
acc[item.fixture.date.split('T')[1]] = [];
}
acc[item.fixture.date.split('T')[1]].push(item);
return acc;
}, {})

它们按照事件发生的时间进行标记。如果我console.logtime,那么您可以在下图中看到一天的数据是如何返回的。

返回数据示例

我正试图找出如何循环浏览这些对象,并找到彼此相距不到30分钟的对象。例如:它会找到16:05:00+01:0016:30:00+01:00,并将它们一起放入一个名为Interval的新数组中。

实现这一点最简单的方法是什么?

const datesInRange = (date1, date2, range) => //range = difference in minutes
(date1 - date2) / 1000 / 60 <= range 
? true : false

最新更新