{"ScriptPreparationCode":"var omit1 = (originalObj = {}, keysToOmit = []) =\u003E\r\n Object.fromEntries(\r\n Object.entries(originalObj)\r\n .filter(([key]) =\u003E !keysToOmit.includes(key))\r\n )\r\n\r\nvar omit2 = new Function(\u0027obj\u0027, \u0027if (!obj) return {}; const { a, d, i, ...res } = obj; return res;\u0027);\r\n\r\nvar omit3 = (originalObject = {}, keysToOmit = []) =\u003E { \r\n const clonedObject = { ...originalObject }; \r\n for (const path of keysToOmit) { \r\n delete clonedObject[path] \r\n } \r\n return clonedObject;\r\n}\r\n\r\nfunction omit4(obj, keys) {\r\n var target = {};\r\n for (var i in obj) {\r\n if (keys.indexOf(i) \u003E= 0) continue;\r\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\r\n target[i] = obj[i];\r\n }\r\n return target;\r\n}\r\n\r\nfunction omitProd(src) {\r\n\tif (!src || typeof src !== \u0027object\u0027) return {};\r\n\r\n\tconst clonedObject = { ...src };\r\n\tlet idx = 0;\r\n\tlet propsList = arguments;\r\n\r\n\tif (Array.isArray(propsList[1])) {\r\n\t\tpropsList = propsList[1];\r\n\t\tidx = -1;\r\n\t}\r\n\r\n\tconst len = propsList.length;\r\n\r\n\twhile (\u002B\u002Bidx \u003C len) {\r\n\t\tconst key = propsList[idx];\r\n\r\n\t\tdelete clonedObject[key];\r\n\t}\r\n\r\n\treturn clonedObject;\r\n}\r\n\r\nfunction getRandomInt(min, max) {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(Math.random() * (max - min) \u002B min); //The maximum is exclusive and the minimum is inclusive\r\n}\r\n\r\n\r\nvar data = [];\r\n\r\nfor (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n const obj = {};\r\n\tconst propsCount = getRandomInt(0, 10);\r\n \r\n \tfor (let j = 0; j \u003C propsCount; j\u002B\u002B) {\r\n\t\t\r\n\t \tconst propCode = getRandomInt(97, 122);\r\n \r\n \t\tobj[String.fromCharCode(propCode)] = propCode;\r\n\t}\r\n \r\n data.push(obj);\r\n}","TestCases":[{"Name":"Lodash","Code":"data.map((obj) =\u003E _.omit(obj, [\u0027a\u0027,\u0027d\u0027,\u0027i\u0027]))","IsDeferred":false},{"Name":"es omit","Code":"data.map((obj) =\u003E omit1(obj, [\u0027a\u0027,\u0027d\u0027,\u0027i\u0027]))","IsDeferred":false},{"Name":"compiled omit","Code":"data.map((obj) =\u003E omit2(obj, [\u0027a\u0027,\u0027d\u0027,\u0027i\u0027]))","IsDeferred":false},{"Name":"rest and delete omit","Code":"data.map((obj) =\u003E omit3(obj, [\u0027a\u0027,\u0027d\u0027,\u0027i\u0027]))","IsDeferred":false},{"Name":"babel","Code":"data.map((obj) =\u003E omit4(obj, [\u0027a\u0027,\u0027d\u0027,\u0027i\u0027]))","IsDeferred":false},{"Name":"dest and rest","Code":"data.map((obj) =\u003E { const { a, d, i, ...rest } = obj; return rest; })","IsDeferred":false},{"Name":"prod version","Code":"data.map((obj) =\u003E omitProd(obj, \u0027a\u0027,\u0027d\u0027,\u0027i\u0027))","IsDeferred":false},{"Name":"prod version array","Code":"data.map((obj) =\u003E omitProd(obj, [\u0027a\u0027,\u0027d\u0027,\u0027i\u0027]))","IsDeferred":false}]}