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

104
Visualizações
Inserte todas las propiedades de un objeto dentro de una matriz a otro objeto en la matriz usando JS/TS

He estado buscando una forma sencilla de copiar/insertar/mover propiedades en un objeto dentro de una matriz a otro objeto. Se me ocurrió una lógica básica que hace el trabajo a la perfección, pero no estoy satisfecho con esto. Tiene que haber una mejor manera, ¿alguna ayuda aquí?

 var first = [ { "AGREE_EFF_DATE__0": "02-Aug-2018", "AGREE_TERM_DATE__0": "30-Apr-2021", "AGREE_IND__0": "P1", "P_DBAR_IND__0": "N", "AGREE_EFF_DATE__1": "01-May-2021", "AGREE_TERM_DATE__1": null, "AGREE_IND__1": "NP", "P_DBAR_IND__1": "N", "PROVIDER_SPECIALITY__0": "PSYCHOLOGY, CLINICAL", "PROVIDER_SPECIALITY_CODE__0": "CK" } ]; var second = [ { "STATUS": "ACTIVE", "MEDICARE_NUMBER" : 12345 } ]; for(let i = 0; i < second.length; i++) { var first_keys = Object.keys(first[i]); var first_values = Object.values(first[i]); for(let j = 0; j < first_keys.length; j++) { second[i][first_keys[j]] = first_values[j]; } } console.log(second); //Output- [ { STATUS: 'ACTIVE', MEDICARE_NUMBER: 12345, AGREE_EFF_DATE__0: '02-Aug-2018', AGREE_TERM_DATE__0: '30-Apr-2021', AGREE_IND__0: 'P1', P_DBAR_IND__0: 'N', AGREE_EFF_DATE__1: '01-May-2021', AGREE_TERM_DATE__1: null, AGREE_IND__1: 'NP', P_DBAR_IND__1: 'N', PROVIDER_SPECIALITY__0: 'PSYCHOLOGY, CLINICAL', PROVIDER_SPECIALITY_CODE__0: 'CK' } ]
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Cuando sea posible, debe preferir la iteración a los bucles indexados manualmente. Esto significa arr.map() o arr.forEach() o arr.reduce() , por nombrar algunos.

Además, puede usar una extensión de objetos para fusionar objetos fácilmente.

Poniéndolos juntos, puede reducir esta lógica a:

 const result = first.map((firstObj, i) => ({ ...firstObj, ...second[i] }))

Aquí map() sobre todos los miembros de first , lo que devuelve una nueva matriz donde cada miembro es el resultado de la función. Esta función toma el miembro de la matriz como primer argumento y el índice de ese miembro como segundo argumento. Entonces podemos usar ese índice para encontrar el elemento correspondiente en la segunda matriz.

Luego, simplemente extiende ambos objetos en un nuevo objeto para ensamblar el resultado final.

 var first = [ { a: 1, b: 2 }, { a: 4, b: 5 }, ]; var second = [ { c: 3 }, { c: 6 }, ]; const result = first.map((firstObj, i) => ({ ...firstObj, ...second[i] })) console.log(result)

Lo cual también es mecanografiado perfectamente válido .


NOTA: hay una diferencia entre mi código y el tuyo. Su código modifica los objetos en second . Mi código devuelve nuevos objetos y no cambia el contenido del second en absoluto.

Por lo general, esta es la mejor opción, pero depende de cómo use este valor y cómo se espera que fluyan los datos en su programa.

about 4 years ago · Juan Pablo Isaza Relatório

0

Debe tener cuidado con la iteración, ya que puede tener diferentes recuentos de elementos en la primera y segunda matriz. Entonces la posible solución será así:

 const first = [ { "AGREE_EFF_DATE__0": "02-Aug-2018", "AGREE_TERM_DATE__0": "30-Apr-2021", "AGREE_IND__0": "P1", "P_DBAR_IND__0": "N", "AGREE_EFF_DATE__1": "01-May-2021", "AGREE_TERM_DATE__1": null, "AGREE_IND__1": "NP", "P_DBAR_IND__1": "N", "PROVIDER_SPECIALITY__0": "PSYCHOLOGY, CLINICAL", "PROVIDER_SPECIALITY_CODE__0": "CK" } ]; const second = [ { "STATUS": "ACTIVE", "MEDICARE_NUMBER": 12345 } ]; console.log(mergeAll(first, second)); function mergeAll(firstArray, secondArray) { const result = []; const minLength = firstArray.length < secondArray.length ? firstArray.length : secondArray.length; for (let i = 0; i < minLength; i++) { result.push({...firstArray[i], ...secondArray[i]}); } return result; }

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