Test name | Executions per second |
---|---|
Reduce (object) | 4154.3 Ops/sec |
Reduce (Map) | 2769.7 Ops/sec |
for-of (object) | 4238.5 Ops/sec |
for-of (Map) | 1310.7 Ops/sec |
var data = { Array.from(Array(10000).keys()) };
const filterWithObject = (val) => {
const result = {}
for (const key in val) {
if (Number(key) % 2 === 0) {
continue;
}
result[key] = val[key];
}
return result;
};
const filterWithMap = (val) => {
const result = new Map();
for (const key in val) {
if (Number(key) % 2 === 0) {
continue;
}
result.set(key, val[key]);
}
return Object.fromEntries(result.entries());
};
Object.keys(data)
.filter(key => Number(key) % 2 === 0)
.reduce((acc, key) => {
acc[key] = data[key];
return acc;
}, {});
Object.keys(data)
.filter(key => Number(key) % 2 === 0)
.reduce((acc, key) => {
acc.set(key, data[key]);
return acc;
}, new Map());
filterWithObject(data)
filterWithMap(data)