每日一题:计算数组中的平均时间

每日一题

计算给出数组中的字符的平均时间,里面的字符串时间是24小时制的,我们获取N个时间来获取一个平均值,时间精确到分钟,秒数忽略去掉即可。(听说是大厂开胃真题)

思路分析

  • 首先我们想要获取平均值,在我们现有的字符串中,我们首先得将字符串转化为可以进行数值统计的真实时间,找最小的数值单位用作统计,所以第一步的目的很明确了,需要将字符串转化为单位为分钟的统计数字。注意数字和字符的隐式转换
let toalM = arr.reduce((pre,cur)=>{
    
    
  let [h,m] = cur.split(":");
  return Number(h)*60 + Number(m) + pre;
},0)
  • 第二步,我们需要求分钟的平均数,在N个时间中,获取平均的值,以分钟作为单位。
let toalP =  toalM/arr.length;
  • 第三步,进行数值处理即可,既然已经拿到了平均的总时间单位了,只需要接下来处理好小时和分钟的关系即可,通过除以60取整得到的是小时数,取余,余数是分钟数。
let H = Math.floor(toalP / 60);
let M = toalP% 60;

H = H<10? `0${
      
      H}`:H;
M = M<10? `0${
      
      M}`:M;
  • 最后拼接数据,输出最后的结果
const arr = ["8:15", "6:35", "11:22"];

let toalM = arr.reduce((pre,cur)=>{
    
    
  let [h,m] = cur.split(":");
  return Number(h)*60 + Number(m) + pre;
},0)
let toalP =  toalM/arr.length;
let H = Math.floor(toalP / 60);
let M = toalP% 60;

H = H<10? `0${
      
      H}`:H;
M = M<10? `0${
      
      M}`:M;
console.log(H+":"+M);

猜你喜欢

转载自blog.csdn.net/m0_46672781/article/details/134947332