{"ScriptPreparationCode":"var arr = [];\r\n\r\nfor (let i = 0; i \u003C 100000; i\u002B\u002B) {\r\n arr.push({\r\n value: i,\r\n textValue: \u0027text-\u0027 \u002B i \u002B \u0027\u0027 \u002B Math.random(),\r\n createdAt: Math.random(),\r\n createdBy: Math.ceil(Math.random() \u002B 10),\r\n updatedAt: i,\r\n updatedBy: Math.ceil(Math.random() \u002B 10),\r\n })\r\n}\r\n\r\nvar omitInline = (obj, keys) =\u003E {\r\n const newObj = {\r\n ...obj\r\n };\r\n\r\n if (keys.length \u003E 4) {\r\n return keys.reduce((acc, key) =\u003E {\r\n delete acc[key];\r\n\r\n return acc;\r\n }, newObj);\r\n }\r\n\r\n delete newObj[keys[0]];\r\n\r\n if (keys.length === 1) return newObj;\r\n\r\n delete newObj[keys[1]];\r\n\r\n if (keys.length === 2) return newObj;\r\n\r\n delete newObj[keys[2]];\r\n\r\n if (keys.length === 3) return newObj;\r\n\r\n delete newObj[keys[3]];\r\n\r\n return newObj;\r\n}\r\n\r\nvar omitReduce = (obj, keys) =\u003E {\r\n const newObj = {\r\n ...obj\r\n };\r\n\r\n if (keys.length \u003E 3) {\r\n return keys.reduce((acc, key) =\u003E {\r\n delete acc[key];\r\n\r\n return acc;\r\n }, newObj);\r\n }\r\n\r\n delete newObj[keys[0]];\r\n\r\n if (keys.length === 1) return newObj;\r\n\r\n delete newObj[keys[1]];\r\n\r\n if (keys.length === 2) return newObj;\r\n\r\n delete newObj[keys[2]];\r\n\r\n return newObj;\r\n}\r\n\r\n\r\nvar omitFor = (obj, keys) =\u003E {\r\n const newObj = {\r\n ...obj\r\n };\r\n\r\n if (keys.length \u003E 3) {\r\n for (let i = 0; i \u003C= keys.length; i\u002B\u002B) {\r\n delete newObj[keys[i]];\r\n }\r\n\r\n return newObj\r\n }\r\n\r\n delete newObj[keys[0]];\r\n\r\n if (keys.length === 1) return newObj;\r\n\r\n delete newObj[keys[1]];\r\n\r\n if (keys.length === 2) return newObj;\r\n\r\n delete newObj[keys[2]];\r\n\r\n return newObj;\r\n}\r\n\r\nvar omitForOf = (obj, keys) =\u003E {\r\n const newObj = {\r\n ...obj\r\n };\r\n\r\n if (keys.length \u003E 3) {\r\n for (const key of keys) {\r\n delete newObj[key];\r\n }\r\n\r\n return newObj\r\n }\r\n\r\n delete newObj[keys[0]];\r\n\r\n if (keys.length === 1) return newObj;\r\n\r\n delete newObj[keys[1]];\r\n\r\n if (keys.length === 2) return newObj;\r\n\r\n delete newObj[keys[2]];\r\n\r\n return newObj;\r\n}\r\n\r\nvar omitEntries = (obj, keys) =\u003E {\r\n const newObj = {\r\n ...obj\r\n };\r\n\r\n if (keys.length \u003E 3) {\r\n return Object.fromEntries(Object.entries(obj).filter(entry =\u003E !keys.includes(entry[0])))\r\n }\r\n\r\n delete newObj[keys[0]];\r\n\r\n if (keys.length === 1) return newObj;\r\n\r\n delete newObj[keys[1]];\r\n\r\n if (keys.length === 2) return newObj;\r\n\r\n delete newObj[keys[2]];\r\n\r\n return newObj;\r\n}","TestCases":[{"Name":"Omit Inline","Code":"return arr.map(item =\u003E omitInline(item, [\u0027createdAt\u0027, \u0027createdBy\u0027, \u0027updatedAt\u0027, \u0027updatedBy\u0027]))","IsDeferred":false},{"Name":"Omit For","Code":"return arr.map(item =\u003E omitFor(item, [\u0027createdAt\u0027, \u0027createdBy\u0027, \u0027updatedAt\u0027, \u0027updatedBy\u0027]))","IsDeferred":false},{"Name":"Omit ForOf","Code":"return arr.map(item =\u003E omitForOf(item, [\u0027createdAt\u0027, \u0027createdBy\u0027, \u0027updatedAt\u0027, \u0027updatedBy\u0027]))","IsDeferred":false},{"Name":"Omit Entries","Code":"return arr.map(item =\u003E omitEntries(item, [\u0027createdAt\u0027, \u0027createdBy\u0027, \u0027updatedAt\u0027, \u0027updatedBy\u0027]))","IsDeferred":false},{"Name":"Omit Reduce","Code":"return arr.map(item =\u003E omitReduce(item, [\u0027createdAt\u0027, \u0027createdBy\u0027, \u0027updatedAt\u0027, \u0027updatedBy\u0027]))","IsDeferred":false}]}