Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Reduce vs Map+FromEntries vs for loop vs forof loop vd
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Browser:
Chrome 122
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
reduce mutating acc
1386.5 Ops/sec
map + fromEntries
753.5 Ops/sec
for loop
1529.4 Ops/sec
forof loop
1532.4 Ops/sec
forin loop
652.9 Ops/sec
reduce without mutating acc
48.9 Ops/sec
.forEach
1500.3 Ops/sec
Script Preparation code:
var data = Object.fromEntries(Array.from(Array(10000).keys()).map((v, k) => [k, v]));
Tests:
reduce mutating acc
Object.entries(data).reduce((acc, [k, v]) => { acc[k] = v.toString(); return acc; }, {});
map + fromEntries
Object.fromEntries(Object.entries(data).map(([k, v]) => ([k, v.toString()])));
for loop
const dataObject = Object.entries(data) const acc = {} for (let i = 0; i < dataObject.length; i++) { const [k, v] = dataObject[i]; acc[k] = v.toString() }
forof loop
const dataObject = Object.entries(data) const acc = {} for (const [k,v] of dataObject) { acc[k] = v.toString() }
forin loop
const acc = {} for (const property in data) { if (data.hasOwnProperty(property)){ acc[property] = data[property].toString(); } }
reduce without mutating acc
Object.entries(data).reduce((acc, [k, v]) => { return { ...acc, [k]: v.toString() }; }, {});
.forEach
const acc = {}; Object.entries(data).forEach(([k, v]) => { acc[k] = v.toString(); });