Script Preparation code:
x
 
var keys = [];
var prefix = 'someKeyPrefix';
var obj = {};
var map = new Map();
var set = new Set();
for (var i = 0; i < 300; i++) {
    var key = prefix + i;
    keys.push(key);
    if (i % 3) {
        obj[key] = true;
        map.set(key, true);
        set.add(key);
    }
}
Tests:
  • Get from Object

     
    for (const key of keys) {
        var val = obj[key]
    }
  • Has key in Object

     
    for (const key of keys) {
        var has = key in obj
    }
  • Get from Map

     
    for (const key of keys) {
        var val = map.get(key)
    }
  • Has key in Map

     
    for (const key of keys) {
        var has = map.has(key);
    }
  • Has key in Set

     
    for (const key of keys) {
        var has = set.has(key);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Get from Object
    Has key in Object
    Get from Map
    Has key in Map
    Has key in Set

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
Chrome 106 on Windows
View result in a separate tab
Test name Executions per second
Get from Object 29193.1 Ops/sec
Has key in Object 28236.9 Ops/sec
Get from Map 36934.6 Ops/sec
Has key in Map 37241.9 Ops/sec
Has key in Set 36461.9 Ops/sec