Script Preparation code:
x
 
var objList= [
  { name: "Lorem" },
  { name: "ipsum" },
  { name: "dolor" },
  { name: "sit" },
  { name: "amet" },
  { name: "consectetur" },
  { name: "adipisicing" },
  { name: "elit." },
  { name: "Ullam" },
  { name: "nesciunt" },
  { name: "debitis," },
  { name: "facilis" },
  { name: "qui" },
  { name: "possimus" },
  { name: "minus" },
  { name: "rerum" },
  { name: "velit" },
  { name: "saepe" },
  { name: "magnam," },
  { name: "voluptatum" },
  { name: "quos" },
  { name: "eveniet" },
  { name: "ducimus" },
  { name: "facere" },
  { name: "harum" },
  { name: "itaque" },
  { name: "atque" },
  { name: "assumenda" },
  { name: "reiciendis" },
  { name: "exercitationem" }
]
for(let i = 0; i < 100000; i++)
  objList.unshift({ name: ""+i })
Tests:
  • Object lookup

     
    var object = objList.reduce((acc, team) => {
                acc[team.name] = team
                return acc;
            }, {});
    var b = object["consectetur"]
  • Map lookup

     
    var map = objList.reduce((acc, team) => {
                acc.set(team.name, team);
                return acc;
            }, new Map());
    for(let i = 0; i < 100000; i++)
    var b = map.has("consectetur")
  • Set lookup

     
    var set = objList.reduce((acc, team) => {
                acc.add(team.name);
                return acc;
            }, new Set());
    for(let i = 0; i < 100000; i++)
    var b = set.has("consectetur")
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object lookup
    Map lookup
    Set lookup

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 months ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Chrome 131 on Linux
View result in a separate tab
Test name Executions per second
Object lookup 225.1 Ops/sec
Map lookup 233.0 Ops/sec
Set lookup 274.3 Ops/sec