Test name | Executions per second |
---|---|
.forEach | 19.5 Ops/sec |
for..of | 35.9 Ops/sec |
for..of (destructuring) | 23.9 Ops/sec |
.map | 23.1 Ops/sec |
.map (destructuring) | 28.9 Ops/sec |
.for (init array) | 30.1 Ops/sec |
.reduce | 27.1 Ops/sec |
.reduce (destructuring) | 26.5 Ops/sec |
for..of (reduce) | 31.2 Ops/sec |
for..of (reduce) (destructuring) | 43.0 Ops/sec |
function generateTestArray() {
const result = [];
for (let i = 0; i < 1000000; ++i) {
result.push({
a: i,
b: i / 2,
r: 0,
});
}
return result;
}
const array = generateTestArray();
array.forEach((x) => {
x.r = x.a + x.b;
});
const array = generateTestArray();
for(const x of array) {
x.r = x.a + x.b;
}
const array = generateTestArray();
const r = [];
for(const {a, b} of array) {
r.push(a + b);
}
const array = generateTestArray();
array.map(x => x.a + x.b)
const array = generateTestArray();
array.map(({a,b}) => a + b)
const array = generateTestArray();
const r = new Array(array.length);
for (let i = 0; i < array.length; ++i) {
r[i] = array[i].a + array[i].b;
}
const array = generateTestArray();
array.reduce((p, x) => p + x.a + x.b, 0);
const array = generateTestArray();
array.reduce((p, {a,b}) => p + a + b, 0);
const array = generateTestArray();
let r = 0;
for (const x of array) {
r += x.a + x.b;
}
const array = generateTestArray();
let r = 0;
for (const {a,b} of array) {
r += a + b;
}