JSFiddle - React, Tailwind, and code Playground
by Gigapedia
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
JavaScript
console.clear();
var regions = [
{ "plan": "Professional", "coverageName": "Individual", "serviceName": "Co-Payment", "info": "In-Network 10 SPECIALIST", "note": " UM PROGRAM INFORMATION IS NOT CURRENTLY AVAILABLE "},
{ "plan": "Professional", "coverageName": "Non-Individual", "serviceName": "Co-Insurance", "info": "In-Network COMBINED OFFICE VISIT INCLUDES OFFICE, OTHER DIAGNOSTIC, THERAPY, SUBSTANCE ABUSE, MENTAL NERVOUS, MATERNITY", "note": " UM PROGRAM INFORMATION IS NOT CURRENTLY AVAILABLE "},
{ "plan": "Professional - Office", "coverageName": "Individual", "serviceName": "Co-Insurance", "info": "In-Network ", "note": " UM PROGRAM INFORMATION IS NOT CURRENTLY AVAILABLE "},
{ "plan": "nonProfessional - visit", "coverageName": "Individual", "serviceName": "Co-Insurance", "info": "In-Network ", "note": " UM PROGRAM INFORMATION IS NOT CURRENTLY AVAILABLE "},
{ "plan": "nonProfessional - visit", "coverageName": "Individual", "serviceName": "Co-Insurance", "info": "In-Network ", "note": " Certification/Authorization is not required "}];
var getServiceInfo = group => _.chain(group)
.map((v, k) => {
var result = {
info: v.info,
note: v.note
};
return result;
});
var getService = group => _.chain(group)
.groupBy('serviceName').map((v, k) => {
var result = {
name: k,
details: getServiceInfo(v)
};
return result;
});
var getCoverage = group => _.chain(group)
.groupBy('coverageName').map((v, k) => {
var result = {
name: k,
service: getService(v)
};
return result;
});
var wrappedObject = _.chain(regions)
.groupBy('plan').map((v, k)=>{
var result = {
plan: k,
coverage: getCoverage(v)
}
return result;
});
var result = JSON.parse(JSON.stringify(wrappedObject));
console.log(result);