Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
testing different solutions with objects in reduce
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/140.0.0.0 Safari/537.36
Browser:
Chrome 140
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
7 months ago
Test name
Executions per second
spread
44355344.0 Ops/sec
new prop in acc
71457992.0 Ops/sec
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
let data = []; for (let i = 0; i < 1000; i++) { data.push(i); } let obj = data.reduce((acc, item) => ({ ...acc, id: item }), {});
Tests:
spread
let newObj = Object.keys(obj).reduce((acc, key) => ({ ...acc, [key]: obj[key] + 1 }), {})
new prop in acc
let newObj = Object.keys(obj).reduce((acc, key) => { acc[key] = obj[key] + 1; return acc; }, {});
new prop by object assign
let newObj = Object.keys(obj).reduce((acc, key) => Object.assign(acc, { [key]: obj[key] + 1 }), {})
just new acc without enumeration
let newObj = Object.keys(obj).reduce((acc, key) => ({ result: acc.result + obj[key]}),{ result: 0 })
just old acc without enumeration
let newObj = Object.keys(obj).reduce((acc, key) => { acc.result += obj[key]; return acc; }, { result: 0 });