Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
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/120.0.0.0 Safari/537.36
Browser:
Chrome 120
Operating system:
Linux
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Array.prototype.concat
179.7 Ops/sec
Lodash concat
170.1 Ops/sec
Array.prototype.push.apply()
127.2 Ops/sec
spread operator
53.1 Ops/sec
push spread operator
102.1 Ops/sec
forEach push
139.2 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)) }