Mi aplicación React recibe una matriz que consta de una matriz que contiene los identificadores de otros dos y dos matrices que contienen el identificador y el nombre. Quiero crear una matriz, que contenga los nombres que se ajusten a la identificación de la matriz uno. Escrito en una forma censurada se ve así:
Hay una matriz A, que consta de dos identificadores y el propio identificador (AAAAA_id).
A
{
"AAAAAA_id": "AA",
"BBBBBB_id": "BB",
"CCCCCC_id": "CC"
}
Luego está el Array B que consta de BBBBBB_id y el nombre.
B
{
"BBBBBB_id": "BB",
"BBBBBB_name": "BNombre",
}
Además, existe el Array C que consta de CCCCCC_id y el nombre
C
{
"CCCCCC_id": "CC",
"CCCCCC_name": "CNombre",
}
¿Cómo puedo lograr un nuevo Array D que consiste en
D
{
"AAAAAA_id": "AA",
"BBBBBB_id": "BB",
"BBBBBB_name": "BNombre",
"CCCCCC_id": "CC"
"CCCCCC_name": "CNombre",
}
Comencé con una combinación de mapa y filtro,
const D = A.map(x => {
Pero no sé cómo progresar de aquí en adelante para manejar múltiples arreglos.
Puedes usar buscar
const D = A.map(a => ({ ...a, BBBBBB_name: B.find(b => b.BBBBBB_id == a.BBBBBB_id)?.BBBBBB_name, CCCCCC_name: C.find(c => c.CCCCCC_id == a.CCCCCC_id)?.CCCCCC_name, }))o mejor solución de rendimiento
const MAP_ID_NAME_B = B.reduce((acc, cur) => { acc[cur.BBBBBB_id] = cur.BBBBBB_name return acc; }, {}) const MAP_ID_NAME_C = C.reduce((acc, cur) => { acc[cur.CCCCCC_id] = cur.CCCCCC_name return acc; }, {}) const D = A.map(a => ({ ...a, BBBBBB_name: MAP_ID_NAME_B[a.BBBBBB_id], CCCCCC_name: MAP_ID_NAME_C[a.CCCCCC_id] }));