Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
Reduce vs Map+FromEntries vs for loop vs forof loop
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
Benchmark engine:
Benchmark.js
for loop
2K/s
forof loop
2K/s
reduce mutating acc
1K/s
map + fromEntries
750/s
forin loop
503/s
reduce without mutating acc
43/s
View exact numbers
Test name
Executions per second
✓
for loop
1,595 Ops/sec
forof loop
1,552 Ops/sec
reduce mutating acc
1,336 Ops/sec
map + fromEntries
750 Ops/sec
forin loop
503 Ops/sec
reduce without mutating acc
43 Ops/sec
Script Preparation code:
var data = Array.from(Array(10000).keys());
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 dataObject = Object.entries(data) 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() }; }, {});