convert and lookup 10k times
Date tested:
2 months ago
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Test name
Executions per second
Object lookup
1635299.2 Ops/sec
Map lookup
36647.3 Ops/sec
Set lookup
36601.9 Ops/sec
Obj array lookup
1750.7 Ops/sec
Benchmark definition (click to collapse):
Script Preparation code:
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" } ]
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")
Obj array lookup
for(let i = 0; i < 100000; i++) var b = objList.some(o=>o.name == "consectetur")
Open this result on MeasureThat.net