Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

150
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!