{"ScriptPreparationCode":"var input = { foo: \u0027lorem\u0027, bar: \u0027ipsum\u0027, baz: null }\r\nvar reduce = (itemsArray, callback, seed) =\u003E {\r\n let accumulator = seed;\r\n for (let i = 0; i \u003C itemsArray.length; i \u002B= 1) {\r\n accumulator = callback(accumulator, itemsArray[i], i);\r\n }\r\n return accumulator;\r\n};","TestCases":[{"Name":"Reduce","Code":"const keys = [\u0027foo\u0027, \u0027bar\u0027, \u0027baz\u0027];\r\nconst setProperty = (acc, key, value) =\u003E value ? (acc[key] = value) \u0026\u0026 acc : acc;\r\n\r\nkeys.reduce((acc, key) =\u003E setProperty(acc, key, input[key]), {});","IsDeferred":false},{"Name":"Looping","Code":"const keys = [\u0027foo\u0027, \u0027bar\u0027, \u0027baz\u0027];\r\nconst setProperty = (acc, key, value) =\u003E value ? (acc[key] = value) \u0026\u0026 acc : acc;\r\n\r\nreduce(\r\n keys,\r\n (acc, key) =\u003E setProperty(acc, key, input[key]),\r\n {}\r\n);","IsDeferred":false},{"Name":"Ifs","Code":"const { foo, bar, baz } = input;\r\n\r\nconst result = {};\r\n\r\nif (foo) {\r\n result.foo = foo;\r\n}\r\n\r\nif (bar) {\r\n result.bar = bar;\r\n}\r\n\r\nif (baz) {\r\n result.baz = baz;\r\n}","IsDeferred":false}]}