Run details:
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
Windows
Desktop
2 years ago
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
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);
    }