在 JavaScript 中查找数组中的最小时间差

问题

我们需要编写一个 JavaScript 函数,该函数采用“Hour:Minutes”格式的 24 小时制时间点数组。我们的函数应该找到数组中任意两个时间点之间的最小分钟差。

例如,如果函数的输入是 -

const arr = ["23:59","00:00"];

那么输出应该是 -

const output = 1;

因为时间之间的最小差异是1分钟

示例

以下是代码 -

const arr = ["23:59","00:00"];

const findMinDifference = (arr = []) => {

   const find = (str = '') => str.split(':').map(time => parseInt(time, 10))

   const mapped = arr.map((time) => {

      const [hour1, minute1] = find(time)

      return hour1 * 60 + minute1

   });

   const sorted = []

   let isrepeating = false

   mapped.forEach((time) => {

      if (sorted[time] !== undefined || sorted[time + 24 * 60] !== undefined) {

      isrepeating = true

   }

      sorted[time] = time

      sorted[time + 24 * 60] = time + 24 * 60

   })

   if (isrepeating) {

      return 0

   }

   let min = Infinity

   let prev = null

   for (let i = 0; i < sorted.length; i++) {

      if (sorted[i] !== undefined) {

         if (prev) {

            min = Math.min(min, sorted[i] - prev)

         }

         prev = sorted[i]

      }

   }

   return min

};

console.log(findMinDifference(arr));

输出结果

以下是控制台输出 -

1

以上是 在 JavaScript 中查找数组中的最小时间差 的全部内容, 来源链接: utcz.com/z/360026.html

回到顶部