Extracting grouped objects into a flattened list
As commented, the ES6 spread operator flattens like you want.  The syntax is a little weird for multiple invocations:

result = [].concat(...[].concat(...data.map( d =&gt; d.groups.map( g =&gt; g.configurations.map( c =&gt; ({id:c.id, code:c.code, value:c.value})))))) 


The arr.flat() method does the same thing more simply.  It takes an optional depth argument to indicate how many levels to descend when flattening.  In your case, depth is 2.  

.flat is a recent feature that may not exist on your platform.  Most notably, Node 10 and MS Edge do not have it, while both of those do have the spread operator:

data.map( d =&gt; d.groups.map( g =&gt; g.configurations.map( c =&gt; ({id:c.id, code:c.code, value:c.value})))).flat(2)