Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
Array concat vs spread operator vs push vs assignment
Compare the new ES6 spread operator with the traditional concat() method and push and assign
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/120.0.0.0 Safari/537.36
Browser:
Chrome 120
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Benchmark engine:
Benchmark.js
Push
104.5M/s
spread operator
80.7M/s
Array.prototype.concat
17.4M/s
assign
9.5M/s
View exact numbers
Test name
Executions per second
✓
Push
104,542,936 Ops/sec
spread operator
80,708,432 Ops/sec
Array.prototype.concat
17,433,066 Ops/sec
assign
9,544,988 Ops/sec
Script Preparation code:
const append = (arr1, arr2) => { // Pre-allocate space for the new elements arr1.length += arr2.length; // Copy elements from arr2 to arr1 for (let i = 0; i < arr2.length; i++) { arr1[arr1.length - arr2.length + i] = arr2[i]; } return arr1; }; window.append = append
Tests:
Array.prototype.concat
var params = [ "hello", true, 7 ]; var other = [ 1, 2 ].concat(params);
spread operator
var params = [ "hello", true, 7 ] var other = [ 1, 2, ...params ]
Push
var params = [ "hello", true, 7 ]; var other = [ 1, 2 ].push(...params);
assign
var params = [ "hello", true, 7 ]; var other = append([1,2], params);