const arr = ["8:15", "6:35", "11:22"]
将时间转换为分钟数,计算平均值后再将结果转换回小时和分钟即可。具体步骤如下:
遍历数组中的每个时间,将其转换为分钟数并求和。
将总分钟数除以时间数量得到平均值,取整数部分作为小时数,余数部分作为分钟数。
如果分钟数小于 10,则在前面添加一个零以保持两位数格式。
将小时数和分钟数组合成字符串形式的时间表示。
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"。