Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:81.0) Gecko/20100101 Firefox/81.0
Firefox 81
Mac OS X 10.12
Desktop
4 years ago
Test name Executions per second
push 9061.0 Ops/sec
concat 161.9 Ops/sec
concat spread 18504.3 Ops/sec
push apply 10655.4 Ops/sec
concat apply 41611.9 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);