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

118
Vistas
Operador de extensión con una exclusión para fusionar objetos

Estoy fusionando datos de dos matrices de objetos en función de una URL y una url de propiedad común y estoy usando el operador de distribución para agregar todas las propiedades en la matriz final.

El problema es que si el value de la propiedad común no tiene el mismo nombre key , agregará "dos veces" esa propiedad, aparte de cambiar el nombre de la propiedad o agregar las propiedades una por una, ¿hay alguna manera de excluir esa propiedad usando el operador de distribución? .

 const data1 = [{ url: 'google.com', private: 'no' },{ url: 'duckduckgo.com', private: 'yes' }] const data2 = [{ URL: 'google.com', many: true, other: true, properties: true, dont: true, want: true, to: true, add: true, onebyone: true, }] const res = data2.map(obj => { const otherData = data1.find(({ url }) => url === obj.URL) return { ...obj, ...otherData } }) console.log(res)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

El resultado esperado sería eliminar la propiedad de URL 'duplicada' y tener solo la url: google.com

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

0

Como señaló OP en los comentarios,

¿podría usar mi ejemplo y proporcionar una respuesta por favor?

A continuación encontrará un ejemplo de trabajo. Creo que se explica por sí mismo; sin embargo, si tiene alguna pregunta, publique y explicará según sea necesario.

 const data1 = [{ url: 'google.com', private: 'no' },{ url: 'duckduckgo.com', private: 'yes' }] const data2 = [{ URL: 'google.com', many: true, other: true, properties: true, dont: true, want: true, to: true, add: true, onebyone: true, }] const res = data2.map(({ URL, ...rest }) => { const otherData = data1.find(({ url }) => url === URL) return { ...rest, ...otherData } }) console.log(res)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

NOTA: En lugar de obj , desestructuramos y accedemos a URL y rest . Luego, al completar, simplemente omitimos la URL y mantenemos solo el rest . Eso es todo.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Bueno, ¿por qué no eliminas el campo URL del resultado?

 const res = data2.map(obj => { const otherData = data1.find(({ url }) => url === obj.URL) const result = { ...obj, ...otherData }; delete result.URL; return result; })
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