Script Preparation code:
x
 
var arr = [];
for (let i = 0; i < 100; i++) {
  let internal = [];
  for (let j = 0; j < 100; j++) {
    internal.push(i * 100 + j);
  }
  arr.push(internal);
}
Tests:
  • iterate / push

     
    let flattened = [];
    for (let i = 0; i < arr.length; i++) {
      let internal = arr[i];
      for (let j = 0; j < internal.length; j++) {
        flattened.push(internal[j]);
      }
    }
  • reduce / spread

     
    let flattened = arr.reduce((acc, i) => [ ...acc, ...i], []);
  • reduce / concat

     
    let flattened = arr.reduce((acc, i) => acc.concat(i), []);
  • reduce / push

     
    let flattened = arr.reduce((acc, i) => {
      i.forEach(e => acc.push(e));
      return acc;
    }, []);
  • array.flat

     
    let flattend = arr.flat();
  • frray.flatMap

     
    let flattend = arr.flatMap((x) => (x));
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    iterate / push
    reduce / spread
    reduce / concat
    reduce / push
    array.flat
    frray.flatMap

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
Chrome 111 on Linux
View result in a separate tab
Test name Executions per second
iterate / push 26001.8 Ops/sec
reduce / spread 3137.3 Ops/sec
reduce / concat 7820.8 Ops/sec
reduce / push 29214.8 Ops/sec
array.flat 1602.2 Ops/sec
frray.flatMap 1592.1 Ops/sec