javascript - 查找数组中 100 个最新值的值

标签 javascript

我有一个数组,它不断更新来自 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/

相关文章:

javascript - 如何在同一页面上的 Angular 应用程序和非 Angular 应用程序之间进行通信?

javascript - 组合框使用箭头键滚动页面 ExtJs

javascript - 更改 textarea onclick 的值会将插入符号置于一个奇怪的位置,但仅在 IE 中

javascript - 在 React 中点击删除项目

javascript - 将 jQuery.html() 的值加在一起?

php - 单击“返回”时,客户的 CC 双倍收费

javascript - C++ - 实现 JS 的 setTimeout 的现代方法

javascript - Firefox 扩展 - 我们如何检查这是否是内容脚本?

javascript - 如何将 JavaScript 变量值转换为 PHP 变量

javascript - 将根范围数据存储在浏览器本地/ session 存储中,并在页面重新加载后加载