Object.keys().forEach() vs for..of

Benchmark created on


Setup

const objectToTest={
  "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",
  "a1": "2",
  "a2": "3",
  "a3": "4",
  "a4": "5",
  "a5": "6",
  "a6": "7",
  "a7": "8",
  "a8": "9",
  "a9": "10",
  "b1": "3",
  "b2": "4",
  "b3": "5",
  "b4": "6",
  "b5": "7",
  "b6": "8",
  "b7": "9",
  "b8": "10",
  "b9": "11",
  "c1": "4",
  "c2": "5",
  "c3": "6",
  "c4": "7",
  "c5": "8",
  "c6": "9",
  "c7": "10",
  "c8": "11",
  "c9": "12",
  "d1": "5",
  "d2": "6",
  "d3": "7",
  "d4": "8",
  "d5": "9",
  "d6": "10",
  "d7": "11",
  "d8": "12",
  "d9": "13",
  "e1": "6",
  "e2": "7",
  "e3": "8",
  "e4": "9",
  "e5": "10",
  "e6": "11",
  "e7": "12",
  "e8": "13",
  "e9": "14",
  "f1": "7",
  "f2": "8",
  "f3": "9",
  "f4": "10",
  "f5": "11",
  "f6": "12",
  "f7": "13",
  "f8": "14",
  "f9": "15",
  "g1": "8",
  "g2": "9",
  "g3": "10",
  "g4": "11",
  "g5": "12",
  "g6": "13",
  "g7": "14",
  "g8": "15",
  "g9": "16",
  "h1": "9",
  "h2": "10",
  "h3": "11",
  "h4": "12",
  "h5": "13",
  "h6": "14",
  "h7": "15",
  "h8": "16",
  "h9": "17",
  "i1": "10",
  "i2": "11",
  "i3": "12",
  "i4": "13",
  "i5": "14",
  "i6": "15",
  "i7": "16",
  "i8": "17",
  "i9": "18",
  "j1": "11",
  "j2": "12",
  "j3": "13",
  "j4": "14",
  "j5": "15",
  "j6": "16",
  "j7": "17",
  "j8": "18",
  "j9": "19",
  "k1": "12",
  "k2": "13",
  "k3": "14",
  "k4": "15",
  "k5": "16",
  "k6": "17",
  "k7": "18",
  "k8": "19",
  "k9": "20",
  "l1": "13",
  "l2": "14",
  "l3": "15",
  "l4": "16",
  "l5": "17",
  "l6": "18",
  "l7": "19",
  "l8": "20",
  "l9": "21",
  "m1": "14",
  "m2": "15",
  "m3": "16",
  "m4": "17",
  "m5": "18",
  "m6": "19",
  "m7": "20",
  "m8": "21",
  "m9": "22",
  "n1": "15",
  "n2": "16",
  "n3": "17",
  "n4": "18",
  "n5": "19",
  "n6": "20",
  "n7": "21",
  "n8": "22",
  "n9": "23",
  "o1": "16",
  "o2": "17",
  "o3": "18",
  "o4": "19",
  "o5": "20",
  "o6": "21",
  "o7": "22",
  "o8": "23",
  "o9": "24",
  "p1": "17",
  "p2": "18",
  "p3": "19",
  "p4": "20",
  "p5": "21",
  "p6": "22",
  "p7": "23",
  "p8": "24",
  "p9": "25",
  "q1": "18",
  "q2": "19",
  "q3": "20",
  "q4": "21",
  "q5": "22",
  "q6": "23",
  "q7": "24",
  "q8": "25",
  "q9": "26",
  "r1": "19",
  "r2": "20",
  "r3": "21",
  "r4": "22",
  "r5": "23",
  "r6": "24",
  "r7": "25",
  "r8": "26",
  "r9": "27",
  "s1": "20",
  "s2": "21",
  "s3": "22",
  "s4": "23",
  "s5": "24",
  "s6": "25",
  "s7": "26",
  "s8": "27",
  "s9": "28",
  "t1": "21",
  "t2": "22",
  "t3": "23",
  "t4": "24",
  "t5": "25",
  "t6": "26",
  "t7": "27",
  "t8": "28",
  "t9": "29",
  "u1": "22",
  "u2": "23",
  "u3": "24",
  "u4": "25",
  "u5": "26",
  "u6": "27",
  "u7": "28",
  "u8": "29",
  "u9": "30",
  "v1": "23",
  "v2": "24",
  "v3": "25",
  "v4": "26",
  "v5": "27",
  "v6": "28",
  "v7": "29",
  "v8": "30",
  "v9": "31",
  "w1": "24",
  "w2": "25",
  "w3": "26",
  "w4": "27",
  "w5": "28",
  "w6": "29",
  "w7": "30",
  "w8": "31",
  "w9": "32",
  "x1": "25",
  "x2": "26",
  "x3": "27",
  "x4": "28",
  "x5": "29",
  "x6": "30",
  "x7": "31",
  "x8": "32",
  "x9": "33",
  "y1": "26",
  "y2": "27",
  "y3": "28",
  "y4": "29",
  "y5": "30",
  "y6": "31",
  "y7": "32",
  "y8": "33",
  "y9": "34",
  "z1": "27",
  "z2": "28",
  "z3": "29",
  "z4": "30",
  "z5": "31",
  "z6": "32",
  "z7": "33",
  "z8": "34",
  "z9": "35"
}




Test runner

Ready to run.

Testing in
TestOps/sec
for..of
for(const el of Object.keys(objectToTest)){
	console.log(el)
}
ready
forEach
Object.keys(objectToTest).forEach((key) => console.log(key))
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.