Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
[Object.entries after fixed] Reduce vs Looping vs Ifs vs Destructuring vs Object.entries vs Single loop
(version: 0)
Comparing performance of:
Reduce vs Looping vs Ifs vs Destructuring vs Object.entries vs Single loop
Created:
5 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
var input = { foo: 'lorem', bar: 'ipsum', baz: null, qux: 'dosol', quz: 'set'} var reduce = (itemsArray, callback, seed) => { let accumulator = seed; for (let i = 0; i < itemsArray.length; i += 1) { accumulator = callback(accumulator, itemsArray[i], i); } return accumulator; };
Tests:
Reduce
const keys = ['foo', 'bar', 'baz']; const setProperty = (acc, key, value) => value ? (acc[key] = value) && acc : acc; const result = keys.reduce((acc, key) => setProperty(acc, key, input[key]), {}); Object.entries(result).map( ([key, value]) => `data-analytics-view-custom-analytics-${key}="${value}"`, ).join(' ')
Looping
const keys = ['foo', 'bar', 'baz']; const setProperty = (acc, key, value) => value ? (acc[key] = value) && acc : acc; const result = reduce( keys, (acc, key) => setProperty(acc, key, input[key]), {} ); Object.entries(result).map( ([key, value]) => `data-analytics-view-custom-analytics-${key}="${value}"`, ).join(' ')
Ifs
const { foo, bar, baz } = input; const result = {}; if (foo) { result.foo = foo; } if (bar) { result.bar = bar; } if (baz) { result.baz = baz; } Object.entries(result).map( ([key, value]) => `data-analytics-view-custom-analytics-${key}="${value}"`, ).join(' ')
Destructuring
const { foo, bar, baz } = input; const result = { foo, bar, baz }; Object.entries(result).map( ([key, value]) => value ? `data-analytics-view-custom-analytics-${key}="${value}"` : '', ).join(' ')
Object.entries
const { foo, bar, baz } = input; const result = Object.entries({ foo, bar, baz }).filter(([key, value]) => value !== null && value !== undefined); result.map( ([key, value]) => `data-analytics-view-custom-analytics-${key}="${value}"`, ).join(' ')
Single loop
reduce( Object.entries(input), (acc, [key, value]) => (~['foo', 'bar', 'baz'].indexOf(key) && value) ? `${acc} data-analytics-view-custom-analytics-${key}="${value}"` : acc, '' );
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (6)
Previous results
Fork
Test case name
Result
Reduce
Looping
Ifs
Destructuring
Object.entries
Single loop
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Related benchmarks:
[Object.entries after] Reduce vs Looping vs Ifs vs Destructuring
[Object.entries after fixed] Reduce vs Looping vs Ifs vs Destructuring
[Object.entries after fixed] Reduce vs Looping vs Ifs vs Destructuring vs Object.entries
[Object.entries after fixed] Reduce vs Looping vs Ifs vs Destructuring vs Object.entries vs Single loop vs Single reduce
Comments
Confirm delete:
Do you really want to delete benchmark?