Script Preparation code:
AخA
 
var data = { ...Array.from(Array(10000).keys()) };
Tests:
  • Object.fromEntries

     
    Object.fromEntries(Object.entries(data).filter((key, value) => value % 2 === 0));
  • Reduce (reuse object)

     
    Object.entries(data).reduce((acc, [key, value]) => {
      if (value % 2 === 0) {
        acc[key] = value;
      }
      return acc;
    }, {});
  • Reduce (creating temporary objects)

     
    Object.entries(data).reduce((acc, [k, v]) => ({
      ...acc,
      ...(v % 2 === 0 && {[k]: v})
    }), {});
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object.fromEntries
    Reduce (reuse object)
    Reduce (creating temporary objects)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0
Firefox 113 on Ubuntu
View result in a separate tab
Test name Executions per second
Object.fromEntries 735.2 Ops/sec
Reduce (reuse object) 979.6 Ops/sec
Reduce (creating temporary objects) 0.2 Ops/sec