Test name | Executions per second |
---|---|
Array.filter | 20346.7 Ops/sec |
for, continue | 68550.6 Ops/sec |
for, condition | 69394.4 Ops/sec |
for..of | 19424.3 Ops/sec |
Array.reduce | 20445.6 Ops/sec |
generator, spread | 1590.8 Ops/sec |
var arr = Array.from({ length: 10000 }, Math.random);
var TARGET_VALUE = 0.95;
function* filter(iter, f) {
for (const it of iter) {
if (f) {
yield it;
}
}
}
return arr.filter(x => x >= TARGET_VALUE);
const farr = [];
for (let i = 0, len = arr.length; i < len; ++i) {
if (arr[i] < TARGET_VALUE) {
continue;
}
farr.push(arr[i]);
}
return farr;
const farr = [];
for (let i = 0, len = arr.length; i < len; ++i) {
if (arr[i] >= TARGET_VALUE) {
farr.push(arr[i]);
}
}
return farr;
const farr = [];
for (const x of arr) {
if (x >= TARGET_VALUE) {
farr.push(x);
}
}
return farr;
return arr.reduce(
(a, b) => {
if (b >= TARGET_VALUE) {
a.push(b);
}
return a;
},
[],
);
return [filter(arr, x => x >= TARGET_VALUE)];