Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0
Chrome 128
Mac OS X 10.15.7
Desktop
6 months ago
Test name Executions per second
map 37545.5 Ops/sec
reverse for 25309.4 Ops/sec
for 19245.6 Ops/sec
for push 19035.5 Ops/sec
reverse for unshift 19034.5 Ops/sec
Script Preparation code:
AخA
 
var arr = new Array(500).fill().map(()=>({id:Math.random()**Math.random()**Math.random()}));
Tests:
  • map

     
    const res1=arr.map(({id})=>id>Math.random()?{foo:'bar'}:{bar:'foo'});
  • reverse for

     
    const res2=new Array(arr.length);
    for (let i=arr.length-1;i>-1;i--){
      res2[i]=arr[i].id>Math.random()?{foo:'bar'}:{bar:'foo'}
    }
  • for

     
    const res2=new Array(arr.length);
    for (let i=0;i<arr.length;i++){
      res2[i]=arr[i].id>Math.random()?{foo:'bar'}:{bar:'foo'}
    }
  • for push

     
    const res2=[]
    for (let i=0;i<arr.length;i++){
      res2.push(arr[i].id>Math.random()?{foo:'bar'}:{bar:'foo'})
    }
  • reverse for unshift

     
    const res2=new Array();
    for (let i=arr.length-1;i>-1;i--){
      res2.unshift(arr[i].id>Math.random()?{foo:'bar'}:{bar:'foo'})
    }