请教一个求交集的算法

const arr = [
    {
        id:1,
        date:[['2021-06-17 00:00','2021-06-30 23:59'],['2021-07-18 00:00','2021-08-18 23:59']],
        name:'a',
    },
    {
        id:1,
        date:[['2021-05-20 00:00','2021-06-11 23:59'],['2021-07-18 00:00','2021-08-18 23:59']],
        name:'a',
    },
    {
        id:2,
        date:[['2021-06-14 00:00','2021-06-25 23:59'],['2021-10-18 00:00','2021-12-18 23:59']],
        name:'a',
    },    
    {
        id:2,
        date:[['2021-06-01 00:00','2021-06-25 23:59'],['2021-06-18 00:00','2021-12-18 23:59']],
        name:'b',
    },
]
//筛选出arr数组中id不同,name相同,date存在交集的元素

如题!
我目前是用reduce两两相比,里面的date再去双重循环做比较,不知道还有没有更优的解法呢

阅读 1.1k
1 个回答

试试 dayjs diff方法,或者看看源码找找思路

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题