【发布时间】:2019-07-05 02:58:33
【问题描述】:
我有一个每分钟更新一次的数组。当我想在一天内显示它时,我想获得当天每小时的平均值。
最近一分钟是添加数组的末尾。
//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 smaller arrays, with JavaScript的副本
感谢您的帮助!
【问题讨论】:
-
您有一些数据要测试以及您的期望吗?
-
如果你可以包含
lodash,它有一个名为chunk的函数,它接受一个数组并将它拆分为你想要的任何子数组。 lodash.com/docs/4.17.11#chunk -
只需
pushtest到循环外的新数组就完成了吗?
标签: javascript typescript