{"ScriptPreparationCode":"var apps = [{\r\n name: \u0027app1\u0027,\r\n categories: [\u0027a\u0027, \u0027b\u0027, \u0027c\u0027]\r\n}, {\r\n name: \u0027app2\u0027,\r\n categories: [\u0027b\u0027, \u0027d\u0027]\r\n}, {\r\n name: \u0027app3\u0027,\r\n categories: [\u0027a\u0027, \u0027d\u0027]\r\n}]","TestCases":[{"Name":"Ramda","Code":"R.countBy(R.identity)(R.flatten(R.map(R.prop(\u0027categories\u0027), apps)))","IsDeferred":false},{"Name":"Reduce","Code":"var categories = apps.reduce((acc, app) =\u003E acc.concat(app.categories), []);\r\n\r\nvar counts = categories.reduce((acc, cat) =\u003E {\r\n if (acc[cat]) {\r\n acc[cat] = acc[cat] \u002B 1;\r\n } else {\r\n acc[cat] = 1;\r\n }\r\n return acc;\r\n}, {});\r\n","IsDeferred":false}]}