{"ScriptPreparationCode":"var count = 100000;\r\nvar groupBy = \u0022group\u0022;\r\nvar rows = Array.from({\r\n length: count\r\n});\r\n\r\nfor (let i = 0; i \u003C count; i\u002B\u002B) {\r\n rows[i] = {\r\n id: i,\r\n group: \u0060group-${Math.ceil(Math.random() * 4)}\u0060,\r\n value: Math.random() * 100000,\r\n };\r\n}\r\n\r\nfunction groupByFor(field, data) {\r\n var result = {};\r\n\r\n for (let i = 0; i \u003C data.length; i\u002B\u002B) {\r\n var item = data[i];\r\n var key = \u0060${item[field]}\u0060;\r\n\r\n if (!result[key]) {\r\n result[key] = [];\r\n }\r\n\r\n result[key].push(item);\r\n }\r\n\r\n return result;\r\n};\r\n\r\nfunction groupByForOf(field, data) {\r\n var result = {};\r\n\r\n for (var [index, item] of data.entries()) {\r\n var item = data[index];\r\n var key = \u0060${item[field]}\u0060;\r\n\r\n if (!result[key]) {\r\n result[key] = [];\r\n }\r\n\r\n result[key].push(item);\r\n }\r\n\r\n return result;\r\n};\r\n\r\nfunction groupByReduce(field, data) {\r\n return data.reduce((result, item) =\u003E {\r\n var key = \u0060${item[field]}\u0060;\r\n\r\n if (!result[key]) {\r\n result[key] = [];\r\n }\r\n\r\n result[key].push(item);\r\n return result;\r\n }, {});\r\n};","TestCases":[{"Name":"For Loop","Code":"var result = groupByFor(groupBy, rows);","IsDeferred":false},{"Name":"For Of","Code":"var result = groupByForOf(groupBy, rows);","IsDeferred":false},{"Name":"Reduce","Code":"var result = groupByReduce(groupBy, rows);","IsDeferred":false}]}