Necesito un poco de ayuda aquí. Tengo una matriz jerárquica de objetos.
Y el propósito es obtener siempre los últimos hijos de los objetos.
testData = [ { id: 1, name: 'parent 1', children: [ { id: 'c1', name: 'child 1', children: [ { id: 'g1', name: 'grand 1', children: [], }, ], }, ], }, { id: 2, name: 'parent 2', children: [ { id: 'c2', name: 'child 2', children: [ { id: 'g2', name: 'grand2', children: [], }, { id: 'g21', name: 'grand21', children: [], }, ], }, ], }, ]Por ejemplo, si envío:
id:1 => debe devolver el objeto con id:'g1' .
id:c2 => debe enviar el objeto con id:'g2' & id:'g21' de vuelta.
id: g2 => debe enviar el objeto con id: 'g2' de vuelta.
¡Cualquier ayuda será muy apreciada! ¡Gracias!
Editar:
Estoy tratando de hacer algo como esto:
function getChildren(data: Array<any>, value: any, newArray?: Array<any>) { if (data !== undefined) for (let i = 0; i < data.length; i++) { const element = data[i]; if (element['id'] === value && element.children) getChildren(element['children'], value, newArray); if (element['id'] === value && !element.children) newArray?.push(element); } }