JSFiddle - React, Tailwind, and code Playground

JavaScript

const arr = [{
    id: 1,
    name: 'XYZ 1'
}, {
    id: 2,
    name: 'XYZ 2',
    children: [
    {
    id: 5,
    name: 'XYZ 5'
}, {
    id: 6,
    name: 'XYZ 6',
	age:29,
    children: [
    {
    id: 7,
    name: 'XYZ 7'
}, {
    id: 8,
    name: 'XYZ 8'
}]  
}     
    ]
}, {
    id: 3,
    name: 'XYZ 3'
}, {
    id: 4,
    name: 'XYZ 4'
}]


const flats = data => data.map(e=>{
  if(e.children){
  return [...flats(e.children),e]
  } else {console.log("E",e);return e }
}) 

console.log(flats(arr));