{"ScriptPreparationCode":"function randNum(max, min) {\r\n\tconst x = Math.floor(Math.random() * max)\r\n\tif (!isFinite(min) \u0026\u0026 x \u003C min) {\r\n\t\treturn min\r\n\t}\r\n\treturn x\r\n}\r\n\r\nfunction randString(max, min, base) {\r\n\tlet len = randNum(max)\r\n\tif (min \u0026\u0026 len \u003C min) {len = min}\r\n\tif (len \u003E max) {len = max}\r\n\r\n\tlet arr = new Uint8Array(len / 2)\r\n\twindow.crypto.getRandomValues(arr)\r\n\treturn Array.from(arr, (dec)=\u003E (\r\n\t\tdec.toString(base || 36).padStart(2, \u00270\u0027)\r\n\t)).join(\u0027\u0027)\r\n}\r\n\r\nvar obj = {};\r\nfor(let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n const id = randString(32,32);\r\n obj[id] = {\r\n id,\r\n firstName: randString(40,5),\r\n lastName: randString(40,5),\r\n email: randString(40,5),\r\n address: {\r\n country: randString(40,5),\r\n state: randString(40,5),\r\n },\r\n };\r\n}","TestCases":[{"Name":"Object.keys \u002B for","Code":"const keys = Object.keys(obj);\r\nfor (let i = 0; i \u003C keys.length; i\u002B\u002B) {const el = obj[keys[i]]; console.count(\u0027keys \u002B for\u0027)}","IsDeferred":false},{"Name":"Object.values \u002B for","Code":"const values = Object.values(obj);\r\nfor (let i = 0; i \u003C values.length; i\u002B\u002B) {const el = values[i]; console.count(\u0027values \u002B for\u0027)}","IsDeferred":false},{"Name":"for...in","Code":"for (const key in obj) {const el = obj[key]; console.count(\u0027for...in\u0027)}","IsDeferred":false}]}