Script Preparation code:
x
 
var arr = Array(100).fill(Array(20).fill(Math.random()*50))
Tests:
  • reduce

     
    arr.reduce((acc, val) => acc.concat(val), [])
  • flatMap

     
    arr.flatMap(x => x)
  • flat

     
    arr.flat()
  • reduce push

     
    arr.reduce((acc, val) => {
        if (val) val.forEach(a => acc.push(a));
        return acc;
    }, [])
  • forEach push

     
    let acc = [];
    arr.forEach(val => {
        val && val.forEach(v => acc.push(v));
    }), acc;
  • concat spread

     
    [].concat(...arr)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    reduce
    flatMap
    flat
    reduce push
    forEach push
    concat spread

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 25 days ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
Chrome 132 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
reduce 22759.2 Ops/sec
flatMap 44858.0 Ops/sec
flat 45440.5 Ops/sec
reduce push 45093.3 Ops/sec
forEach push 43681.6 Ops/sec
concat spread 521171.6 Ops/sec