JSFiddle - React, Tailwind, and code Playground
by arackaf
HTML
<script src="http://adamrackis.com/linq.js"></script>
JavaScript
var groups = [ {id: 1, name: 'Report Group 1'}, {id: 2, name: 'Report Group 2'}, {id: 3, name: 'Report Group 3'} ];
var reports = [ { id: 1, groupId: 1, name: 'Report 1'}, { id: 2, groupId: 1, name: 'Report 2'},
{ id: 3, groupId: 1, name: 'Report 3'}, { id: 4, groupId: 1, name: 'Report 4'},
{ id: 5, groupId: 1, name: 'Report 5'},
{ id: 6, groupId: 2, name: 'Report 6'}, { id: 7, groupId: 2, name: 'Report 6'},
{ id: 8, groupId: 3, name: 'Report 6'} ];
var result = getMappedReportsAndGroups(reports, groups);
console.log(result);
function getMappedReportsAndGroups(reports, groups){
groups = Enumerable.From(groups);
reports = Enumerable.From(reports);
groups.ForEach(function(g) { g.reports = reports.Where(function(r) { return r.groupId == g.id; }).ToArray(); });
return groups.ToArray();
}