JSFiddle - React, Tailwind, and code Playground
by pimboden40
HTML
<div id='result'>
</div>
JavaScript
var fruitSamples = [
[
{'id': 1,'type': 'apples','samples': [1, 2, 3]},
{'id': 2,'type': 'bananas','samples': [1, 2, 7]},
{'id': 3,'type': 'pears','samples': [1, 2, 3]}
],
[
{'id': 1,'type': 'apples','samples': [5, 2, 9]},
{'id': 2,'type': 'bananas','samples': [1, 7, 7]},
{'id': 3,'type': 'pears','samples': [12, 21, 32]}
],
[
{'id': 1,'type': 'apples','samples': [11, 2, 33]},
{'id': 2,'type': 'bananas','samples': [17, 2, 67]},
{'id': 3,'type': 'pears','samples': [91, 22, 34]}
]
];
var test = fruitSamples.flat().reduce((rv,x)=>{
var f = rv.find(y => y.id == x.id);
if(f == null){
f ={"id":x.id, "type":x.type,"samples":x.samples};
rv.push(f);
}
else{
f.samples = f.samples.concat(x.samples);
}
return rv;
},[]);
document.getElementById('result').innerHTML =JSON.stringify(test)