const arr = [9, 3, 2, 0, 1, 5, 1, 0, 0]
const step = 3
function movingAverage(array, windowSize) {
const result = []
for(let i = 0; i < array.length - windowSize + 1; ++i) {
const sum = array.slice(i, windowSize + i).reduce((acc, val) => acc + val, 0)
const middle = sum/windowSize
result.push(middle)
}
return result
}
console.log(movingAverage(arr, step))
const movingAverage = (data, windowSize) => {
let sum = data.slice(0, windowSize).reduce((acc, cur) => acc + cur, 0);
const result = [sum / windowSize];
for (let i = windowSize; i < data.length; i += 1) {
sum = sum - data[i - windowSize] + data[i];
result.push(sum / windowSize);
}
return result;
};
console.log(movingAverage([9, 3, 2, 0, 1, 5, 1, 0, 0], 3));
// Array(7) [ 4.666666666666667, 1.6666666666666667, 1, 2, 2.3333333333333335, 2, 0.3333333333333333 ]