test
by sberube
JavaScript
function movingAverageForecast(inputArray, forecastCount, windowSize) {
var forecastedValues = [];
// Trim leading 0's from input array
var firstNonZeroIndex = inputArray.findIndex((element) => element !== 0);
inputArray = inputArray.slice(firstNonZeroIndex);
for (var i = 0; i < forecastCount; i++) {
var sum = 0;
var count = 0;
for (var j = inputArray.length - windowSize - forecastCount + i; j < inputArray.length - forecastCount + i; j++) {
if (j >= 0 && j < inputArray.length) {
sum += inputArray[j];
count++;
}
}
var average = sum / count;
forecastedValues.push(average);
}
return forecastedValues;
};
window.console.log(movingAverageForecast([0,0,84389,824443,729663],1,3));