{"ScriptPreparationCode":"var arr = [{\r\n id: \u00221\u0022,\r\n type: \u0022a\u0022\r\n}, {\r\n id: \u00222\u0022,\r\n type: \u0022a\u0022\r\n}, {\r\n id: \u00223\u0022,\r\n type: \u0022b\u0022\r\n}, {\r\n id: \u00224\u0022,\r\n type: \u0022b\u0022\r\n}, {\r\n id: \u00225\u0022,\r\n type: \u0022a\u0022\r\n}]","TestCases":[{"Name":"reassign","Code":"function groupBy(\r\n arr,\r\n key\r\n) {\r\n return arr.reduce(\r\n (acc, cur) =\u003E ({\r\n ...acc,\r\n [String(acc[key(cur)])]: [...(acc[key(cur)] || []), cur],\r\n }),\r\n {},\r\n );\r\n}\r\n \r\ngroupBy(arr, (item) =\u003E item.type);","IsDeferred":false},{"Name":"immutable","Code":"function groupBy(\r\n arr,\r\n key\r\n) {\r\n return arr.reduce((groups, item) =\u003E {\r\n (groups[key(item)] ||= []).push(item);\r\n return groups;\r\n }, {});\r\n}\r\n\r\ngroupBy(arr, (item) =\u003E item.type);","IsDeferred":false}]}