Script Preparation code:
AخA
 
var arr = Array(10_000).fill(0)
Tests:
  • reduce with new array

     
    arr.reduce((acc, x) => [...acc, x, x], [])
  • reduce with array mutation

     
    arr.reduce((acc, x) => { acc.push(x); return acc; }, [])
  • reduce with array concat

     
    arr.reduce((acc, x) => acc.concat(x), [])
  • for

     
    const newArray = [];
    for (let i = 0; arr.length > i; i++) {
      newArray.push(arr[i]);
    }
  • for-of

     
    const newArray = [];
    for (let x of arr) {
      newArray.push(x);
    }
  • map

     
    arr.map(x => x);
  • forEach

     
    const newArray = [];
    arr.forEach(x => newArray.push(x));
  • values (iterates over for-of)

     
    const newArray = [];
    for (let x of arr.values()) {
      newArray.push(x);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    reduce with new array
    reduce with array mutation
    reduce with array concat
    for
    for-of
    map
    forEach
    values (iterates over for-of)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Chrome 102 on Windows
View result in a separate tab
Test name Executions per second
reduce with new array 10.3 Ops/sec
reduce with array mutation 20414.3 Ops/sec
reduce with array concat 6.3 Ops/sec
for 720.2 Ops/sec
for-of 32640.4 Ops/sec
map 28712.2 Ops/sec
forEach 20057.6 Ops/sec
values (iterates over for-of) 32086.5 Ops/sec