Hola a todos, tengo la siguiente matriz
const arr = [ { ImageFileSet: [{ id: 1 }], LineItemFile: "new name", LineItemRef: "PDF", id: 44 }, { ImageFileSet: [{ id: 7 }, { id: 8 }, { id: 9 }], LineItemFile: null, LineItemRef: "Image" id: 124 }, ];Estoy tratando de agrupar una matriz de objetos en una nueva matriz con el siguiente código
const allFiles = arr .flatMap(({ ImageFileSet }) => [ImageFileSet]);La salida es
[ { id: 1 }, { id: 7 }, { id: 8 }, { id: 9 } ] Ahora, ¿cómo puedo agregar LineItemFile para cada objeto?
Quiero un resultado final algo como
[ { id: 1, LineItemFile: "new name", }, { id: 7,LineItemFile: null, }, { id: 8 , LineItemFile: null,}, { id: 9 , LineItemFile: null,} ]Por favor ayúdame a resolver esto.
Investigué este artículo pero no ayudó.
puedes hacer algo como esto
const arr = [{ ImageFileSet: [{ id: 1 }], LineItemFile: "new name", LineItemRef: "PDF", id: 44 }, { ImageFileSet: [{ id: 7 }, { id: 8 }, { id: 9 }], LineItemFile: null, LineItemRef: "Image", id: 124 }, ]; const result = arr.flatMap(({ImageFileSet,LineItemFile}) => ImageFileSet.map(d => ({ ...d, LineItemFile})) ) console.log(result)Algo como:
const allFiles = arr.flatMap((lineItem) => { return lineItem.ImageFileSet.map((imageFileSet) => ( {...imageFileSet, LineItemFile: lineItem.LineItemFile} })) });Prueba esto :
const allFiles = arr.flatMap((obj) => obj.ImageFileSet.flat().map((id) => ({ ...id, LineItemFile: obj.LineItemFile })) );Producción :
[ { "id": 1, "LineItemFile": "new name" }, { "id": 7, "LineItemFile": null }, { "id": 8, "LineItemFile": null }, { "id": 9, "LineItemFile": null } ]