Mi objetivo es recorrer algunos datos y obtener algo como el siguiente resultado, por lo que si alguien puede ayudarme, se lo agradecería mucho. Para mostrar algo como esto, intenté hacer un bucle y mostrarlo en un bucle.
let selectedOrders: {code?: string;selectedList?: [{ name: string; language: string }]; let set = new Set(); order.orders.map((list) => { if (!set.has(list.code)) { selectedOrders.push({ code: list.code, selectedList: [ { name: list.name!, language: list.language!, }, ], }); set.add(list.serviceCode); return; } selectedOrders.push({ selectedList: [ { name: list.name!, language: list.language!, }, ], }); } }); return selectedOrders; });Aporte
{ code:"A" name:"php" desc:"language" order:2 }, { code:"A" name:"javascript" desc:"language" order:1 },Producción
code: A selectedList: [{ name:"javascript" desc:"language" }, { name:"php" desc:"language" }] }let data = [ { code: "A", name: "php", desc: "language", order: 2, }, { code: "B", name: "c++", desc: "language", order: 3, }, { code: "A", name: "javascript", desc: "language", order: 1 }]; let result = data.reduce((acc: any[], item) => { const { name, desc, order, code } = item; if (acc.some((a: any) => code == a.code)) { let obj: any = acc.find((a: any) => code == a.code)!; obj.selectedList.push({ name, desc, order }); } else { acc.push({ code, selectedList: [{ name, desc, order }] }); } return acc; }, []); console.log(result);Simplemente cambie cualquiera a su tipo requerido.