Tests:
  • reduce

    x
     
    const flatten = (arr) =>    
        arr.reduce((acc, x) => {
            Array.isArray(x) ? flatten(x).forEach(y => acc.push(y)) : acc.push(x)
            return acc;
        }, [])
    const x = flatten([ [1,2,3], [ [4,5,6], [7,8,9], [[[[[10,11,12]]], [13,14,15]]] ], [[[[[[[[[[[16,17,18]]]]]]]]]]] ]);
  • for of

     
    const flat = (argarr) => {
      let arr = []
      for (const item of argarr) {
        if (Array.isArray(item)) arr = arr.concat(flat(item))
        else arr.push(item)
     }
      return arr
    }
    const x = flat([ [1,2,3], [ [4,5,6], [7,8,9], [[[[[10,11,12]]], [13,14,15]]] ], [[[[[[[[[[[16,17,18]]]]]]]]]]] ]);
  • reduce TOC

     
    const flatten = (arr, acc = []) => {
        arr.forEach(x => {
            if (Array.isArray(x)) {
                flatten(x, acc);
            } else {
                acc.push(x);
            }
        });
        return acc;
    };
    const x = flatten([ [1,2,3], [ [4,5,6], [7,8,9], [[[[[10,11,12]]], [13,14,15]]] ], [[[[[[[[[[[16,17,18]]]]]]]]]]] ]);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    reduce
    for of
    reduce TOC

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 months ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Chrome 130 on Linux
View result in a separate tab
Test name Executions per second
reduce 111056.8 Ops/sec
for of 124577.1 Ops/sec
reduce TOC 140016.8 Ops/sec