{"ScriptPreparationCode":"let entries = []\r\nlet keys = [\u0027A\u0027, \u0027B\u0027, \u0027C\u0027, \u0027D\u0027, \u0027E\u0027];\r\n\r\nfor (var i = 0; i \u003C 1000; i\u002B\u002B) {\r\n entries.push({ key: keys[i % 5], property: \u0027something\u0027});\r\n}\r\n\r\nfunction getEntries() {\r\n return entries;\r\n}","TestCases":[{"Name":"Using spread operators","Code":"getEntries().reduce((groups, entry) =\u003E {\r\n const group = groups[entry.key] || [];\r\n return { ...groups, [entry.key]: [...group, entry] };\r\n}, {});","IsDeferred":false},{"Name":"Mutating","Code":"getEntries().reduce(function(groups, entry) {\r\n (groups[entry.key] = groups[entry.key] || []).push(entry);\r\n return groups;\r\n }, {});","IsDeferred":false}]}