我有一个数组,它不断更新来自 Arduino 引脚的模拟读数。
我想创建一个函数,它获取数组中最新的 100 个值,并返回它们的平均值(数组的最大长度为 100,000,在该长度时它开始“移动”和“插入”以腾出空间以获得新值)。
我创建了这个函数,但它每次都返回“NaN”:
function returnAverage(){
var averageArray = [];
var sum = 0;
var sampleEnd = values.length
for (var x = sampleEnd - 100; x < sampleEnd; x++) {
averageArray[x] = values[x]
}
for(var i = 0; i < averageArray.length; i++){
sum += parseInt(averageArray[i]);
}
var avg = sum/averageArray.length;
console.log(avg)
}
有什么想法吗?
最佳答案
如果值是数字数组,则最后最多 100 个项目的平均值:
function returnAverage(values) {
var arr = values.slice(-100);
return arr.reduce(function(a, b){ return a + b; }, 0) / (arr.length || 1);
}
关于javascript - 查找数组中 100 个最新值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609239/