¿Cómo puedo mapear una propiedad dentro de una matriz de matrices de objetos?
para aclarar mi punto aquí está mi estructura de código, matriz externa que contiene 4 matrices internas ; el número no debe ser cuatro; cada matriz interna tiene un título de propiedad que quiero elegir. Quiero elegir todas las propiedades de inclinación dentro de la matriz interna y recuperarlas en una matriz separada
Array(4) 0: Array(1) 0: {_id: 'Mc-mi_000000001', title: 'McRoyale', section: {…}, imageSrc: 'McRoyal.png', price: 70, …} length: 1 [[Prototype]]: Array(0) 1: Array(2) 0: {_id: 'Mc-mi_000000002', title: 'Big Mac', section: {…}, imageSrc: 'Bigmac.png', price: 55, …} 1: {_id: 'Mc-mi_000000003', title: 'Big Tasty', section: {…}, imageSrc: 'Big-tasty-Beef.png', price: 75, …} length: 2 [[Prototype]]: Array(0) 2: Array(3) 0: {_id: 'Mc-mi_000000022', title: 'McNuggets 6 Pieces', section: {…}, imageSrc: 'McNuggets-6psc.png', price: 50, …} 1: {_id: 'Mc-mi_000000030', title: 'McFries', section: {…}, imageSrc: 'Large-Frise.png', price: 30, …} 2: {_id: 'Mc-mi_000000039', title: 'American Coffee', section: {…}, imageSrc: 'Ame-R-700x474.png', price: 25, …} length: 3 [[Prototype]]: Array(0) 3: Array(1) 0: {_id: 'Mc-mi_000000041', title: 'Happy Meal Cheeseburger', section: {…}, imageSrc: 'HM-D-Chesseburger.png', price: 35, …} length: 1 [[Prototype]]: Array(0) length: 4 [[Prototype]]: Array(0)¿Cómo puedo poner la propiedad del título en cada matriz interna en una matriz separada?
Si desea mantener la estructura de matriz anidada, puede usar una función de mapa en las matrices internas dentro de la función de mapa de la matriz externa/principal.
const data = [ [ {_id: 'Mc-mi_000000001', title: 'McRoyale'} ], [ {_id: 'Mc-mi_000000002', title: 'Big Mac'}, {_id: 'Mc-mi_000000003', title: 'Big Tasty'} ], [ {_id: 'Mc-mi_000000022', title: 'McNuggets 6 Pieces'}, {_id: 'Mc-mi_000000030', title: 'McFries'}, {_id: 'Mc-mi_000000039', title: 'American Coffee'} ] ]; const titleData = data.map(innerArray => innerArray.map(({title}) => title)); console.log(titleData); /*Expected results: [ [ "McRoyale" ], [ "Big Mac", "Big Tasty" ], [ "McNuggets 6 Pieces", "McFries", "American Coffee" ] ] */Puede recopilar esos títulos llamando a .map anidado:
const data = [[{_id: 'Mc-mi_000000001', title: 'McRoyale' }], [{_id: 'Mc-mi_000000002', title: 'Big Mac'},{_id: 'Mc-mi_000000003', title: 'Big Tasty'}], [{_id: 'Mc-mi_000000022', title: 'McNuggets 6 Pieces' },{_id: 'Mc-mi_000000030', title: 'McFries' },{_id: 'Mc-mi_000000039', title: 'American Coffee'}], [{_id: 'Mc-mi_000000041', title: 'Happy Meal Cheeseburger' }]]; const titles = data.map(arr => arr.map(({title}) => title)); console.log(titles);Una posibilidad es primero aplanar sus arreglos en uno y luego revisarlo con un mapa:
[[{title: "a"}, {title: "b"}], [{title: "c"}]].reduce((acc, arr) => ([...acc, ...arr]), []).map(obj => obj.title)