Skip to content

计算出下面数组中的平均时间

Posted on:2023年6月6日 at 09:22
const arr = ["8:15", "6:35", "11:22"];

将时间转换为分钟数,计算平均值后再将结果转换回小时和分钟即可。具体步骤如下:

  1. 遍历数组中的每个时间,将其转换为分钟数并求和。

  2. 将总分钟数除以时间数量得到平均值,取整数部分作为小时数,余数部分作为分钟数。

  3. 如果分钟数小于 10,则在前面添加一个零以保持两位数格式。

  4. 将小时数和分钟数组合成字符串形式的时间表示。

const arr = ["8:15", "6:35", "11:22"];

// 1. 将时间转换为分钟数并求和
const totalMinutes = arr.reduce((acc, cur) => {
  const [hours, minutes] = cur.split(":");
  return acc + Number(hours) * 60 + Number(minutes);
}, 0);

// 2. 计算平均值并将结果转换回小时和分钟
const averageMinutes = Math.floor(totalMinutes / arr.length);
const hours = Math.floor(averageMinutes / 60);
const minutes = averageMinutes % 60;

// 3. 格式化分钟数
const formattedMinutes = minutes < 10 ? `0${minutes}` : `${minutes}`;

// 4. 组合成字符串形式的时间
const averageTime = `${hours}:${formattedMinutes}`;
console.log(averageTime); // 输出 "8:44"

因此,该数组中的时间的平均值为 “8:44”。

原文转自:https://fe.ecool.fun/topic/731f483a-4575-4f2b-8119-bdcf20629e72