Test name | Executions per second |
---|---|
Reduce and Spread | 42645.7 Ops/sec |
ForEach and Mutate (for .. in loop) | 129911.7 Ops/sec |
Mutate with Object.assign | 97327.3 Ops/sec |
Foreach and Mutate (Object.assign) | 5622.9 Ops/sec |
Reduce Mutate | 5959.5 Ops/sec |
reduce mutate 2 | 109458.0 Ops/sec |
reduce mutate 3 | 5811.6 Ops/sec |
var objectsArray = Array(1000).fill(() => {
const key = Math.random().toString(36).substring(2, 5);
const value = Math.random().toString(36).substring(2, 5);
return {[key]: value};
});
var combined = objectsArray.reduce((memo, obj) => ({memo, obj}), {});
var combined = {}
objectsArray.forEach(obj => {
for (key in obj) {
combined[key] = obj[key];
}
});
var combined = Object.assign(objectsArray)
var combined = {}
objectsArray.forEach(obj => Object.assign(combined, obj));
var combined = objectsArray.reduce((memo, obj) => Object.assign(memo, obj), {});
var combined = objectsArray.reduce((acc, obj) => {
for (key in obj) {
acc[key] = obj[key];
}
return acc;
}, {});
var combined = objectsArray.reduce((acc, obj) => {
Object.keys(obj).forEach((key) => acc[key] = obj[key]);
return acc;
}, {});