Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
Combinar datos de 2 matrices y cambiar el nombre de las claves

Estoy tratando de transformar los datos de 2 puntos finales para simular una interfaz de usuario de tabla básica, pero actualmente no tengo acceso a la base de datos. He jugado con lodash y he tenido un poco de éxito al poder fusionar las dos matrices en función de las referencias usando _.defaults, etc., pero sin éxito.

Estoy tratando de mostrar los datos en una tabla plana por ID de fila, con las claves recién insertadas que se usan como referencias de columna

 BusData1 = [ { id: 1, ObjRef: 1, ObjRefLabel: "ObjRef1 - Option 1", ObjRefDesc: "Option 1 Desc", parentId: null, }, { id: 12, ObjRef: 1, ObjRefLabel: "ObjRef1 - Option 2", ObjRefDesc: "Option 2 Desc", parentId: null, }, ]; OtherData2 = [ { id: 21, BusDataId: 1, ObjRef: 1, ObjRefDesc: "Desc", }, { id: 22, BusDataId: 1, ObjRef: 0, ObjRefDesc: "Desc", }, { id: 31, BusDataId: 1, ObjRef: 1, ObjRefDesc: "Desc", }, { id: 32, BusDataId: 12, ObjRef: 0, ObjRefDesc: "Desc", }, ];

Estoy tratando de fusionar la matriz 2 en la matriz 1 con los valores clave, pero al insertarla en la matriz 1, estoy tratando de actualizar la clave para incluir la identificación del objeto para que cada clave de inserción tenga una referencia única.

 Combined = [ { id: 1, ObjRef: 1, BusDataId21ObjRef: 1, BusDataId22ObjRef: 0, BusDataId31ObjRef: 1, ObjRefLabel: "Option 1", ObjRefDesc: "Desc", parentId: null, }, { id: 12, ObjRef: 1, BusDataId31ObjRef: 0, ObjRefLabel: "Option 2", ObjRefDesc: "Desc", parentId: null, }, ];

Hasta ahora obtuve lo siguiente de otra publicación de StackOverflow, pero no puedo ir más allá de esto.

 const combine = _.map(otherData2, function(row){ return _.defaults(row, _.find(otherData2, {BusDataID: row.id}

Cualquier consejo u orientación aquí sería apreciado

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Un enfoque sencillo

Recorra la matriz de datos comerciales. Para cada elemento de datos comerciales, busque los elementos en la segunda matriz que le pertenecen e insértelos como entradas adicionales.

 BusData1 = [{ id: 1, ObjRef: 1, ObjRefLabel: "ObjRef1 - Option 1", ObjRefDesc: "Option 1 Desc", parentId: null, }, { id: 12, ObjRef: 1, ObjRefLabel: "ObjRef1 - Option 2", ObjRefDesc: "Option 2 Desc", parentId: null, }, ]; OtherData2 = [{ id: 21, BusDataId: 1, ObjRef: 1, ObjRefDesc: "Desc", }, { id: 22, BusDataId: 1, ObjRef: 0, ObjRefDesc: "Desc", }, { id: 31, BusDataId: 1, ObjRef: 1, ObjRefDesc: "Desc", }, { id: 32, BusDataId: 12, ObjRef: 0, ObjRefDesc: "Desc", }, ]; BusData1.forEach(business => { OtherData2.filter( other => other.BusDataId == business.id ).forEach( other => { business["BusDataId" + other.id + "ObjRef"] = other.ObjRef }) }) console.log(BusData1)

Mejoramiento

Esto es O(nxm). Si eso no es lo suficientemente rápido para matrices enormes, ¿podría aprovechar las propiedades conocidas?

Por ejemplo, si los elementos de la segunda matriz están ordenados de manera que las entradas que pertenecen al elemento 1 de BusData1 aparecen antes que las que pertenecen al elemento 2 de BusData1, podría hacerlo con una sola pasada, es decir, O(n+m).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda