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
384/s
forEach push
338/s
Array.prototype.push.apply()
310/s
Lodash concat
278/s
push spread operator
201/s
spread operator
70/s
View exact numbers
Test name
Executions per second
✓
Array.prototype.concat
384 Ops/sec
forEach push
338 Ops/sec
Array.prototype.push.apply()
310 Ops/sec
Lodash concat
278 Ops/sec
push spread operator
201 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)) }