JSFiddle - React, Tailwind, and code Playground

by Jeremy Bolanos

HTML

<ul id="cats"></ul>

JavaScript

var list = [{"categories":"Chipset","categoryids":"107","subcategories":"Qualcomm MDM9615","subcategoryids":"131"},{"categories":"Chipset","categoryids":"107","subcategories":"Samsung CM220","subcategoryids":"128"},{"categories":"Chipset","categoryids":"107","subcategories":"Samsung CMC220","subcategoryids":"129"},{"categories":"Hardware","categoryids":"2","subcategories":"Basic Phone","subcategoryids":"16"},{"categories":"Hardware","categoryids":"2","subcategories":"MHS - Mobile Hot Spot","subcategoryids":"17"},{"categories":"Hardware","categoryids":"2","subcategories":"Module","subcategoryids":"18"},{"categories":"OS","categoryids":"1","subcategories":"iOS (Apple)","subcategoryids":"4"},{"categories":"OS","categoryids":"1","subcategories":"Other OS","subcategoryids":"10"},{"categories":"OS","categoryids":"1","subcategories":"Palm","subcategoryids":"6"},{"categories":"Technology","categoryids":"3","subcategories":"3G","subcategoryids":"12"},{"categories":"Technology","categoryids":"3","subcategories":"4G","subcategoryids":"13"},{"categories":"Technology","categoryids":"3","subcategories":"4G Only","subcategoryids":"14"}];

var groups = _(list).groupBy('categories');
var countGroups = _(groups).countBy('categories');
var setBox2 = '&categories=';
 var comma = 1;
_(groups).each(function (val, key, list) {
    setBox2 += key;
    _(val).each(function (v, k) {
        setBox2 += ':' + v.subcategoryids;
    });
    console.log('comma: ' + comma);
    console.log('val: ' + _.size(groups));
    if (comma < _.size(groups)) { setBox2 += ','; }
    comma++;
});
console.log(setBox2);