我正在使用外部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:00
和16:30:00+01:00
,并将它们一起放入一个名为Interval
的新数组中。
实现这一点最简单的方法是什么?
const datesInRange = (date1, date2, range) => //range = difference in minutes
(date1 - date2) / 1000 / 60 <= range
? true : false