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();
}