Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36
Chrome 99
Mac OS X 10.15.7
Desktop
2 years ago
Test name Executions per second
Map - for of kv 3114336.2 Ops/sec
Map - forEach 2821897.8 Ops/sec
Object.entries() - for of kv 677540.9 Ops/sec
Object.entries() - forEach 131008.2 Ops/sec
Object - for in 445112.6 Ops/sec
Script Preparation code:
x
 
var obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 4,
  e: 5,
  f: 6,
  g: 7,
  h: 8,
  i: 9,
  j: 10,
  k: 11,
  l: 12,
  m: 13,
  n: 14,
  o: 15,
  p: 16,
  q: 17,
  r: 18,
  s: 19,
  t: 20,
  u: 21,
  v: 22,
  w: 23,
  x: 24,
  y: 25,
  z: 26
};
var map = new Map(Object.entries(obj));
Tests:
  • Map - for of kv

     
    let total = 0;
    for (const [key, value] of map) {
        total += value;
    }
  • Map - forEach

     
    let total = 0;
    map.forEach(function(value, key) {
      total += value;
    });
  • Object.entries() - for of kv

     
    let total = 0;
    for (const [key, value] of Object.entries(obj)) {
      total += value;
    }
  • Object.entries() - forEach

     
    let total = 0;
    Object.entries(obj).forEach(function(value, key) {
      total += value;
    });
  • Object - for in

     
    let total = 0;
    for (const key in obj) {
      total += obj[key];
    }