Run details:
Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/122.1.328371734 Mobile/15E148 Safari/604.1
Mobile Safari 13
iOS 13.7
Mobile
4 years ago
Test name Executions per second
Array.concat 134745.2 Ops/sec
Array.prototype.concat.apply 132316.7 Ops/sec
Array.prototype.concat.apply short form 132239.2 Ops/sec
Array.prototype.concat.apply short form without new empty array instance in apply 141344.2 Ops/sec
Array.prototype.concat.apply short form without new empty array at all 131372.8 Ops/sec
Script Preparation code:
AخA
 
var array1 = Array(400).fill().map(() => Math.round(Math.random() * 40));
var array2 = Array(400).fill().map(() => Math.round(Math.random() * 40));
var array3 = Array(400).fill().map(() => Math.round(Math.random() * 40));
var array4 = Array(400).fill().map(() => Math.round(Math.random() * 40));
var array5 = Array(400).fill().map(() => Math.round(Math.random() * 40));
Tests:
  • Array.concat

     
    var others = array1.concat(array2, array3, array4, array5);
  • Array.prototype.concat.apply

     
    var others = Array.prototype.concat.apply([], [array1, array2, array3, array4, array5]);
  • Array.prototype.concat.apply short form

     
    var others = [].concat.apply([], [array1, array2, array3, array4, array5]);
  • Array.prototype.concat.apply short form without new empty array instance in apply

     
    var others = [].concat.apply(array1, [array2, array3, array4, array5]);
  • Array.prototype.concat.apply short form without new empty array at all

     
    var others = array1.concat.apply(array1, [array2, array3, array4, array5]);