Javascript 如何在对象列表中查找重复的时间范围

Javascript 如何在对象列表中查找重复的时间范围,javascript,time,logic,Javascript,Time,Logic,所以基本上我有一个列表对象,我需要找到一个重复的时间范围,这个时间范围是重复的,我面临这样的问题,因为我无法创建正确的逻辑。如有任何帮助,我们将不胜感激 [ { from : '25/4/2020 08:00:00', to : '25/4/2020 10:00:00', }, { from : '25/4/2020 09:00:00', to : '25/4/2020 10:00:00', }, { from : '25/4/2020

所以基本上我有一个列表对象,我需要找到一个重复的时间范围,这个时间范围是重复的,我面临这样的问题,因为我无法创建正确的逻辑。如有任何帮助,我们将不胜感激

[
  {
    from : '25/4/2020 08:00:00',
    to : '25/4/2020 10:00:00',
  },
  {
    from : '25/4/2020 09:00:00',
    to : '25/4/2020 10:00:00',
  },
  {
    from : '25/4/2020 09:30:00',
    to : '25/4/2020 12:00:00',
  },
  {
    from : '25/4/2020 10:00:00',
    to : '25/4/2020 13:00:00',
  },
  {
    from : '25/4/2020 13:30:00',
    to : '25/4/2020 17:00:00',
  }
]
从上面的对象数组中,我希望得到如下形式的结果


[
  {
    from : '25/4/2020 09:00:00',
    to : '25/4/2020 10:00:00',
    count: 2
  },
  {
    from : '25/4/2020 09:30:00',
    to : '25/4/2020 10:00:00',
    count: 3
  },
  {
    from : '25/4/2020 10:00:00',
    to : '25/4/2020 12:00:00',
    count: 2
  }
]

我建议将持续时间解析为一个数字。这可以通过moment.js这样的库来完成

 [
  {
    from : '25/4/2020 08:00:00',
    to : '25/4/2020 10:00:00',
    duration: how to set duration with moment you can find [here][1],
    count: 0
  }
]
[1]: https://momentjs.com/docs/#/durations/diffing/
之后,我将使用forEach遍历时间,并检查是否有任何其他对象具有完全相同的持续时间,如下所示:

timeObject.forEach((timeObject, index, array)=>{
  if(array.includes(timeObject.duration)){
   timeObject.count++
  }
});

“数组”是指它所遍历的数组。

您的尝试在哪里?