Test name | Executions per second |
---|---|
moving array | 255156.3 Ops/sec |
slice | 459625.5 Ops/sec |
reduce | 2826066.8 Ops/sec |
var arr = [];
for (var i = 0; i < 100; i++) {
arr.push(i);
}
var range = [];
for (var i = 0; i < arr.length; i++) {
range.push(arr[i]);
if (range.length > 9) {
range.splice(0, 1);
}
if (i > 8)
{var avg = range.reduce(function(accu, next){ return accu + next ;}) / 9;}
}
for (var i = 0; i < arr.length; i++) {
if (i < 9) continue;
var range = arr.slice(i, i + 9);
var avg = range.reduce(function(accu, next){ return accu + next ;}) / 9;
}
var sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
if (i > 8) {
sum -= arr[i - 9];
}
if (i > 8)
{var avg = sum / 9;}
}