js 判断目标时间字符与数组中的时间字符串哪个最接近返回对应的数组下标 数据格式是‘2023-10-22 08:00’

要判断目标时间字符串与数组中的时间字符串哪个最接近,并返回对应的数组下标,你可以使用JavaScript编写一个函数来实现。下面是一个示例函数:

function findClosestTimeIndex(targetTime, timeArray) {
  // 将目标时间字符串转换为日期对象
  const targetDate = new Date(targetTime);

  // 初始化最小差距和对应的下标
  let minDifference = Infinity;
  let closestIndex = -1;

  // 遍历时间数组
  for (let i = 0; i < timeArray.length; i++) {
    // 将数组中的时间字符串转换为日期对象
    const currentDate = new Date(timeArray[i]);

    // 计算两个日期对象的差距(绝对值)
    const timeDifference = Math.abs(targetDate - currentDate);

    // 如果差距更小,更新最小差距和对应的下标
    if (timeDifference < minDifference) {
      minDifference = timeDifference;
      closestIndex = i;
    }
  }

  return closestIndex;
}

// 示例用法
const targetTime = '2023-10-22 08:00';
const timeArray = ['2023-10-22 07:00', '2023-10-22 09:00', '2023-10-22 10:00'];
const closestIndex = findClosestTimeIndex(targetTime, timeArray);

console.log('最接近的时间在数组中的下标是: ' + closestIndex);

这个函数首先将目标时间字符串和数组中的时间字符串都转换为日期对象,然后计算它们之间的差距,并找到最小差距对应的数组下标。

posted @ 2023-10-23 11:49  小林222  阅读(113)  评论(0)    收藏  举报