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));