Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
Chrome 85
Mac OS X 10.12.6
Desktop
4 years ago
Test name Executions per second
push 13346.0 Ops/sec
concat 49253.1 Ops/sec
concat spread 77640.2 Ops/sec
push apply 13063.0 Ops/sec
concat apply 75203.8 Ops/sec
Script Preparation code:
x
 
const arrayCount = 500;
const arraySize = 4;
var arrays = [];
for(let i = 0; i < arrayCount; i++) {
  arrays.push(Array.from({length: arraySize}, () => Math.floor(Math.random() * 40)));
}
              
Tests:
  • push

     
    let result = [];
    arrays.forEach(curr => {result.push(...curr)});
  • concat

     
    let result = [];
    arrays.forEach(curr => {result = result.concat(curr)});
  • concat spread

     
    let result = [];
    result = result.concat(...arrays);
  • push apply

     
    let result = [];
    arrays.forEach(curr => {Array.prototype.push.apply(result, curr);});
  • concat apply

     
    let result = [];
    result = Array.prototype.concat.apply(result, arrays);