美文网首页
JS循环,如果相邻开始时间和结束时间重叠,结束时间选择长的

JS循环,如果相邻开始时间和结束时间重叠,结束时间选择长的

作者: EverglowLyu | 来源:发表于2023-09-26 10:17 被阅读0次

可以使用一个循环来遍历给定的时间数组,然后比较相邻的时间段是否重叠,并选择较长的结束时间。下面是一个使用 JavaScript 的示例代码:

function chooseLongerEndTime(timeArray) {
  for (let i = 0; i < timeArray.length - 1; i++) {
    const currentTime = timeArray[i];
    const nextTime = timeArray[i + 1];
    
    if (currentTime.endTime >= nextTime.startTime) {
      // 重叠,选择较长的结束时间
      if (currentTime.endTime < nextTime.endTime) {
        currentTime.endTime = nextTime.endTime;
      }
      // 移除下一个时间段
      timeArray.splice(i + 1, 1);
      // 重新检查当前时间段和下一个时间段
      i--;
    }
  }
  
  return timeArray;
}

const timeArray = [
  {
    "startTime": "2023-09-14 17:33:51",
    "endTime": "2023-09-16 09:22:40",
  },
  {
    "startTime": "2023-09-15 17:33:51",
    "endTime": "2023-09-19 09:22:40",
  },
  {
    "startTime": "2023-09-20 17:33:51",
    "endTime": "2023-09-23 09:22:40",
  },
  {
    "startTime": "2023-09-21 17:33:51",
    "endTime": "2023-09-26 09:22:40",
  },
  {
    "startTime": "2023-09-28 17:33:51",
    "endTime": "2023-09-30 09:22:40",
  },
];

const updatedTimeArray = chooseLongerEndTime(timeArray);
console.log(updatedTimeArray);

运行上述代码将得到以下输出:

[
  {
    "startTime": "2023-09-14 17:33:51",
    "endTime": "2023-09-19 09:22:40",
  },
  {
    "startTime": "2023-09-20 17:33:51",
    "endTime": "2023-09-26 09:22:40",
  },
  {
    "startTime": "2023-09-28 17:33:51",
    "endTime": "2023-09-30 09:22:40",
  },
]

相关文章

网友评论

      本文标题:JS循环,如果相邻开始时间和结束时间重叠,结束时间选择长的

      本文链接:https://www.haomeiwen.com/subject/uefhbdtx.html