JSFiddle - React, Tailwind, and code Playground
JavaScript
let sampleData = Array.from({length: 100}, () => Math.floor(Math.random() * 20));
console.log("SampleData: " + sampleData)
let meanMaxByTimeFrame = [];
let start = performance.now();
let sampleDataLength = sampleData.length;
let sampleDataMaxIndex = sampleDataLength;
let sumArray = [];
for(var intervalInSeconds = 1; intervalInSeconds <= sampleDataLength; intervalInSeconds++){
let allAveragesForCurrentInterval = [];
for(var sampleDataIndex = 0; sampleDataIndex < sampleDataMaxIndex; sampleDataIndex++){
sumArray[sampleDataIndex] = sampleData[sampleDataIndex+intervalInSeconds-1] + ((intervalInSeconds === 1) ? 0 : sumArray[sampleDataIndex]);
let avg = sumArray[sampleDataIndex]/intervalInSeconds;
allAveragesForCurrentInterval.push(avg);
}
meanMaxByTimeFrame.push({'Interval': intervalInSeconds, 'MeanMax': Math.max.apply(Math, allAveragesForCurrentInterval)});
sampleDataMaxIndex--;
}
console.log(meanMaxByTimeFrame)
let time = performance.now();
console.log('Duration: ' + (time - start) + ' ms.');