Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

152
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda