gpt4 book ai didi

javascript - 从 HH :mm in JS 计算平均值

转载 作者:行者123 更新时间:2023-12-01 06:32:23 26 4
gpt4 key购买 nike

我有以下数组,其中包括 hh:mm

var times= [ '28:06', '27:56', '28:30']

我正在尝试从上面的数组中计算平均小时和分钟

下面是我的代码

var times= [ '28:06', '27:56', '28:30'],
date = 0,
result = '';
function offsetify(t){
return t < 10 ? '0' + t : t;
}
for(var x = 0; x < times.length; x++ ) {
var tarr = times[x].split(':');
date += new Date(0, 0, 0, tarr[0], tarr[1]).getTime();
}
var avg = new Date(date/times.length);
result = offsetify(avg.getHours()) + ':' + offsetify(avg.getMinutes());
console.log(result);

这给了我 4:10,这是错误的,因为平均值应该在 27 左右:...

我在这里做错了什么

最佳答案

您可以简单地分别找到小时和分钟部分的平均值

var times= [ '28:06', '27:56', '28:30']

function getAverage(isHourPart){
var sum = 0;
times.forEach(function(value){
sum+=parseInt(value.split(':')[isHourPart?0:1], 10);
});
var avg = Math.floor(sum/times.length);
return avg<10 ? '0' + avg : avg;
}

console.log(getAverage(true)+":"+getAverage(false));

但是如果你考虑小时和分钟的组合值

var times= [ '28:06', '27:56', '28:30']

function getSum(){
var sum = 0;
times.forEach(function(value){
var item = value.split(':');
sum+=parseInt(item[0], 10) * 60 + parseInt(item[1], 10);
});
return sum;
}

function getFormattedText(value){
return value<10?"0"+value:value;
}

var totalMinutes = getSum()/3;

var hour = Math.floor(totalMinutes/60);
var minute = Math.floor(totalMinutes - hour * 60);

console.log(getFormattedText(hour)+":"+getFormattedText(minute));

关于javascript - 从 HH :mm in JS 计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60349568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com