Estoy teniendo dificultades con este problema aparentemente simple. Entiendo que puedo mapear a través de la matriz principal y luego mapear nuevamente a través de la matriz de elementos, pero cuando registro la variable simpleObject no obtengo nada.
Tengo una variedad de objetos como este.
[ { "id": 131186, "name": "Section", "items": [ { "id": 40455, "categories": [ { "id": 80313, "name": "some name" }, { "id": 80314, "name": "some name" } ] } ] }, { "id": 131279, "name": "Section", "items": [ { "id": 40990, "categories": [ { "id": 82953, "name": "category" } ] }, { "id": 40991, "categories": [ { "id": 82952, "name": "category title" } ] } ] } ]y estoy tratando de construir una matriz con el objeto que se verá así
[ { "id": 131186, "name": "Section", "categories": [ { "id": 80313, "name": "some name" }, { "id": 80314, "name": "some name" } ] }, { "id": 131279, "name": "Section", "categories": [ { "id": 82953, "name": "category" }, { "id": 82952, "name": "category title" } ] } ]Intenté lo siguiente, pero no obtuve ningún resultado y no estoy seguro de por qué.
let simpleObject = data.map(({ name, id, items }) => ({ id, name, items: items.map((item) => item.categories), }));Un ejemplo usando flatMap
const data = [ { id: 131186, name: "Section", items: [ { id: 40455, categories: [ { id: 80313, name: "some name", }, { id: 80314, name: "some name", }, ], }, ], }, { id: 131279, name: "Section", items: [ { id: 40990, categories: [ { id: 82953, name: "category", }, ], }, { id: 40991, categories: [ { id: 82952, name: "category title", }, ], }, ], }, ]; const output = data.map(({ id, name, items }) => ({ id, name, categories: items.flatMap(item => item.categories), })); console.log(output);