Necesito encontrar el primer elemento secundario en la matriz y simplemente devolverlo. Aquí hay un problema porque aquí hay pocos elementos secundarios y necesito pensar en bucle cada uno y devolver cada primer elemento secundario.
Ejemplo de matriz:
let allItems = [{ id: 1 , name: 'Test 1' , children: [ id: 12, title: 'Child element' ] }, { id: 2 , name: 'Test 2' }, { id: 3 , name: 'Test 3', children: [ id: 12, title: 'Child element', children: [ id: 123, title: 'GRAND Child element', ] ] }]¿Cuál es el problema aquí? Dado que puede haber muchos elementos secundarios, ¿debo encontrar un elemento primario para cada uno de esos elementos?
Después de hacer un bucle, necesito que la matriz sea:
[{ id: 1 , name: 'Test 1' }, { id: 2 , name: 'Test 2' }, { id: 3 , name: 'Test 3' }]Sin elementos hijos.
Lo que estoy tratando:
allItems.map(item => item).filter(filteredItem => !filteredItem.children);Pero esto no me devuelve buenos resultados.
Según su resultado esperado, aquí está mi solución.
También tenga en cuenta que le faltaban llaves con sus hijos.
Nos vemos fragmento modificado a continuación:
let allItems = [{ id: 1, name: 'Test 1', children: [{ id: 12, title: 'Child element' }] }, { id: 2, name: 'Test 2' }, { id: 3, name: 'Test 3', children: [{ id: 12, title: 'Child element', children: [{ id: 123, title: 'GRAND Child element', }] }] } ] console.log(allItems.map(item => { return { id: item.id, name: item.name } }))Usar el mapa y la desestructuración es una buena manera de lograr lo que está buscando
let allItems = [{ id: 1, name: 'Test 1', children: [{ id: 12, title: 'Child element' }] }, { id: 2, name: 'Test 2' }, { id: 3, name: 'Test 3', children: [{ id: 12, title: 'Child element', children: [{ id: 123, title: 'GRAND Child element', }] }] } ]; const res = allItems.map(x => { const {id, name} = x; return {id, name}; }); console.log(res);Utilice estas propiedades para llamar al primer hijo: .firstchild ==>esta propiedad llama al primer nodo .firstElementChild ==>llama al primer elemento