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

173
Vistas
Dividir objetos en matriz, según la propiedad

Quiero duplicar objetos completos dentro de una matriz, según las propiedades dentro del objeto. Necesito duplicar los objetos, según los correos electrónicos divididos, en las nominaciones.

Por ejemplo

 array = [ { id:1, name: ravi, nominations: xyz@gmail.com, abc@gmail.com }, { id:2 name: ramu, nominations: 123@gmail.com, 456@gmail.com } ]

Necesita salida como

 Output_array = [ { id:1, name: ravi, nominations: xyz@gmail.com }, { id:1, name: ravi, nominations: abc@gmail.com }, { id:2 name: ramu, nominations: 123@gmail.com }, { id:2 name: ramu, nominations: 456@gmail.com } ]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

La forma más sencilla sería aplicar un flatMap sobre los elementos y, a continuación, trazar un map sobre las nominaciones.

 const data = [{ id:1, name: "ravi", nominations: "xyz@gmail.com, abc@gmail.com" }, { id:2, name: "ramu", nominations: "123@gmail.com, 456@gmail.com" }]; const result = data.flatMap(item => { return item.nominations.split(", ").map(email => ({ id: item.id, name: item.name, nomination: email })) }) console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una forma bastante sencilla de usar bucles:

 let data = [ { "id": 1, "name": "ravi", "nominations": "xyz@gmail.com,abc@gmail.com" }, { "id": 2, "name": "ramu", "nominations": "123@gmail.com,456@gmail.com" } ]; let newData = [] for (let element of data) { let emailIds = element.nominations.split(","); if (emailIds.length > 1) { for (let emailId of emailIds) newData.push({ id: element.id, name: element.name, nominations: emailId }) } } console.log(newData)

Explicación : comenzando por atravesar los objetos completos, en cada objeto divide la cadena de nominations y la divide con "," para verificar si hay más de un correo electrónico. Si existe, ejecuta un ciclo para agregarlos individualmente.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto podría hacerse con una frase posiblemente larga. La función Object.assign se puede emplear para duplicar el objeto de entrada mientras se cambia la propiedad/propiedades de interés.

 let input = [{ id: 1, name: `ravi`, nominations: `xyz@gmail.com, abc@gmail.com` }, { id: 2, name: `ramu`, nominations: `123@gmail.com, 456@gmail.com` }]; let output = input.flatMap(i => i.nominations.split(",").map(n => Object.assign({}, i, { nominations: n.trim() }))); console.log(output);

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