tengo la siguiente matriz
const arr = [ { Images: [{ id: 1 }, { id: 2 }, { id: 3 }], MediaCategoryName: "Exterior", id: 51 }, { Images: [{ id: 7 }, { id: 8 }, { id: 9 }], MediaCategoryName: "Construction", id: 687 }, { Images: [{ id: 10 }, { id: 11 }, { id: 21 }], MediaCategoryName: "home", id: 755 } ]; ¿Cómo puedo crear una nueva matriz a partir de ellos y poner solo Images ?
necesito algo como esto
newArr = [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 7 }, { id: 8 } , { id: 9 }, { id: 10 }, { id: 11 }, { id: 21 } ]¿Puede alguien ayudarme a lograr esto?
Gracias :)
usando Array.prototype.flatMap()
Es como hacer un mapa para devolver imágenes y luego realizar un plano después.
const arr = [ { Images: [{ id: 1}, {id: 2}, {id: 3 }] , MediaCategoryName: 'Exterior', id: 51 } , { Images: [{ id: 7}, {id: 8}, {id: 9 }] , MediaCategoryName: 'Construction', id: 687 } , { Images: [{ id: 10}, {id: 11}, {id: 21 }] , MediaCategoryName: 'home', id: 755 } ]; const res = arr.flatMap(({Images}) => Images) console.log(JSON.stringify(res)) .as-console-wrapper {max-height: 100% !important;top: 0;} .as-console-row::after {display: none !important;}Puedes probar este código. Tomará cada elemento de arr y toma
out = [] arr.forEach((el)=>{ x.push(...el.Images) })