{"ScriptPreparationCode":"function groupBy(n,r){return 1===arguments.length?function(r){return groupBy(n,r)}:r.reduce(function(r,u){var t=n(u);return r[t]?r[t].push(u):r[t]=[u],r},{})}\r\n\r\nvar students = [...Array(3000)].map((v, i) =\u003E {\r\n return {\r\n value: parseInt(Math.random() * 100, 10),\r\n score: parseInt(Math.random() * 100, 10)\r\n }\r\n})\r\n\r\nvar fn = function(student) {\r\n var score = student.score;\r\n return score \u003C 65 ? \u0027F\u0027 :\r\n score \u003C 70 ? \u0027D\u0027 :\r\n score \u003C 80 ? \u0027C\u0027 :\r\n score \u003C 90 ? \u0027B\u0027 : \u0027A\u0027;\r\n}","TestCases":[{"Name":"ramda","Code":"var byGrade = R.groupBy(fn);\r\nbyGrade(students)","IsDeferred":false},{"Name":"custom impl","Code":"var byGrade = groupBy(fn);\r\nbyGrade(students)","IsDeferred":false}]}