Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
Array with objects concatanation (1)
Array.prototype.concat vs lodash.concat vs. push.apply vs. spread operator vs. push spread operator vs. push in for loop
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Browser:
Chrome 133
Operating system:
Linux
Device Platform:
Desktop
Date tested:
one year ago
Benchmark engine:
Benchmark.js
Array.prototype.concat
367/s
forEach push
329/s
Array.prototype.push.apply()
317/s
Lodash concat
270/s
push spread operator
184/s
spread operator
70/s
View exact numbers
Test name
Executions per second
✓
Array.prototype.concat
367 Ops/sec
forEach push
329 Ops/sec
Array.prototype.push.apply()
317 Ops/sec
Lodash concat
270 Ops/sec
push spread operator
184 Ops/sec
spread operator
70 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
var generateData = (howMany) => { var objs = []; for (let i = 0; i <= howMany; i++) { objs.push({ id: i, displayName: 'Saul Goodman', howMany, userPrincipalName: 'Alex Bettersoon', manager: { displayName: 'Boba Messi' } }); } return objs }
Tests:
push spread operator
var result = []; for (let i = 0; i < 8; i++) { result.push(...generateData(10000)); }
Lodash concat
var result = []; for (let i = 0; i < 8; i++) { result = _.concat(result, generateData(10000)); }
Array.prototype.push.apply()
var result = []; for (let i = 0; i < 8; i++) { Array.prototype.push.apply(result, generateData(10000)); }
spread operator
var result = []; for (let i = 0; i < 8; i++) { result = [...result, ...generateData(10000)]; }
Array.prototype.concat
var result = []; for (let i = 0; i < 8; i++) { result = result.concat(generateData(10000)); }
forEach push
var result = []; for (let i = 0; i < 8; i++) { const a = generateData(10000) a.forEach(e => result.push(e)) }