Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
reduce concat vs flat vs concat spread vs reduce spread
Compare the new ES6 spread operator with the traditional concat() method
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/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Benchmark engine:
Benchmark.js
reduce + Array.prototype.concat
752K/s
concat(...)
735K/s
reduce spread
38K/s
Array.prototype.flat
15K/s
View exact numbers
Test name
Executions per second
✓
reduce + Array.prototype.concat
751,675 Ops/sec
concat(...)
735,342 Ops/sec
reduce spread
37,823 Ops/sec
Array.prototype.flat
14,593 Ops/sec
Script Preparation code:
var params = [ [1, 2], ["hello", true, 7], Array(10000).fill(4), ];
Tests:
reduce + Array.prototype.concat
const x = params.reduce((acc, val) => acc.concat(val), []);
Array.prototype.flat
const x = params.flat(1);
concat(...)
const x = [].concat(...params)
reduce spread
const x = params.reduce((acc, val) => [...acc, ...val], []);