我有一个每分钟更新一次的数组。当我想在一天内显示它时,我想获得当天每小时的平均值。
最近一分钟是添加数组的末尾。
//get the last elements from the array
var hours= (this.today.getHours() + 1) * 60
var data = Array.from(this.temps.data)
let lastData = data.slice(Math.max(data.length - hours))
let newData: any
// calculate the average of every hour
for (let i = 0; i < minutes; i++) {
var cut = i * 60
for (let i = cut; i < (cut + 60); i++) {
newData = newData + lastData[i];
let test = newData/60
console.log(test);
}
}
我不知道如何从每最后 60 个元素中创建一个数组。我的目标是得到一个像
avgHour[20,22,30,27,]
我拥有的数组每分钟更新一次。所以我需要每 60 个元素的平均值来获得一个小时。
数组看起来像这样
data[25,33,22,33]
一周的每一分钟都非常长。
这对我有用
var arrays = [], size = 60;
while (arr.length > 0){
arrays.push(arr.splice(0, size));
}
for (let i = 0; i < (arrays.length - 1); i++) {
var sum = 0
for (let b = 0; b < 60; b++) {
sum += arrays[i][b]
}
let avg = sum/60
arr2.push(avg)
}
这只是将数组每 60 个元素拆分一次。现在我可以计算每 60 个的平均值。How to split a long array into small arrays, with JavaScript
谢谢您的帮助!