Javascript 将重叠时间段的集合合并到新的时间段中
在node.js中,将多组给定时间段合并为一组表示重叠时间段的方法是什么?期间提供为开始日和结束日Javascript 将重叠时间段的集合合并到新的时间段中,javascript,node.js,date,momentjs,Javascript,Node.js,Date,Momentjs,在node.js中,将多组给定时间段合并为一组表示重叠时间段的方法是什么?期间提供为开始日和结束日 4 sets of time intervals (days): (-------------------------) (---------) (---) (------------------------) (-------) (--------
4 sets of time intervals (days):
(-------------------------) (---------) (---)
(------------------------) (-------)
(--------) (-------) (----)
(---------------------) (---------) (---) (-----------)
New set representing overlaps:
(--) (-----) (---)
将所有开始和结束时间戳合并到一个列表中(存储时间戳以及时间戳是开始还是结束)-简单地合并,或者如果有很多集合,则使用
(-------------------------) (---------) (---)
(------------------------) (-------)
(--------) (-------) (----)
(---------------------) (---------) (---) (-----------)
然后随时间使用简单的递增/递减扫描:
0 - ---- ------ ---
1 (------ ------- -) (---) (-- -----)
2 (---------- --) (-- ) (- -)
3 (------ -) (-- --) ( )
4 (--) (-----) (---)
并收集计数最大的时间间隔
^^^^^ ^^^^^^^ ^^^^^
将所有开始和结束时间戳合并到一个列表中(存储时间戳以及时间戳是开始还是结束)-简单地合并,或者如果有很多集合,则使用
(-------------------------) (---------) (---)
(------------------------) (-------)
(--------) (-------) (----)
(---------------------) (---------) (---) (-----------)
然后随时间使用简单的递增/递减扫描:
0 - ---- ------ ---
1 (------ ------- -) (---) (-- -----)
2 (---------- --) (-- ) (- -)
3 (------ -) (-- --) ( )
4 (--) (-----) (---)
并收集计数最大的时间间隔
^^^^^ ^^^^^^^ ^^^^^
到目前为止您尝试了什么?我将时间段表示为一个数组,每个项目都有一个特定的日期:
[“20170714”,“20170715”]
,然后一次将两个数组相交(请参阅)。一旦您合并了所有集合,您就必须找到一种将数组转换为实际时间跨度的方法。@JuanStiza Lodashintersect
并不是我们所需要的here@Bergi你说得对!似乎还有一个附加条件,即每套中都必须有重叠。如果您提供示例输入和输出,以及您尝试过的内容,将非常有帮助。目前,这是一个关于通用算法的问题,它不是特定于任何特定语言或库的。到目前为止您尝试了什么?我将时间段表示为一个数组,每个项目都有一个特定的日期:[“20170714”,“20170715”]
,然后一次将两个数组相交(请参阅)。一旦您合并了所有集合,您就必须找到一种将数组转换为实际时间跨度的方法。@JuanStiza Lodashintersect
并不是我们所需要的here@Bergi你说得对!似乎还有一个附加条件,即每套中都必须有重叠。如果您提供示例输入和输出,以及您尝试过的内容,将非常有帮助。目前,这是一个关于通用算法的问题,它不是特定于任何特定语言或库的。