function group(data, by = 'wd', wrap = ['aat', 'parent']) {
return [...new Set(data.map(d => d[by]))].map(d => {
const matches = data.filter(d2 => d === d2[by])
return {
...matches[0],
...Object.fromEntries(wrap.map(w => {
return [w, matches.map(m => m[w]).filter(v => v != null)]
}))
}
})
}