JSFiddle - React, Tailwind, and code Playground
JavaScript
var s = '',
a = s.split('\n'),
tree = {}, lastNode
a.forEach(function (x) {
lastNode = tree
var list = x.split(','),
code = list.shift()
list.forEach(function (x) {
if (!lastNode[x]) lastNode[x] = {};
lastNode = lastNode[x]
lastNode.codes=lastNode.codes||[]
lastNode.codes.push(code)
})
})
var recur=function(node){
var k=Object.keys(node).filter(function(x){return x!=='codes'})
k.forEach(function(x){
console.log(x+' {'+node[x].codes+'}\n')
recur(node[x])
})
}
recur(tree)