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

170
Vistas
¿Cómo crear dos objetos a partir de un objeto si los campos no son los mismos en el objeto?

Tengo una matriz de objetos debajo y tengo que crear una nueva matriz de objetos basada en las condiciones a continuación

  1. si la identificación no está vacía y la identificación de registro está vacía, inserte este objeto en la matriz de resultados.

  2. si la identificación de registro no está vacía y la identificación está vacía, entonces asigne la identificación de registro a la identificación e inserte este objeto en la matriz de resultados.

  3. si la identificación no está vacía y la identificación de registro no está vacía, entonces

    a. Verifique que la identificación y la identificación de registro sean las mismas, luego asigne la identificación de registro a la identificación, inserte este objeto en la matriz de resultados.

    b. la identificación y la identificación de registro no son iguales, cree dos objetos. Uno con "id": 1 y otro con asignación de identificación de registro a id ("id": 100)

 var userData =[{ "id": 1, "name": "abcd", "place":"xyz", "registrationid": 100 }]; var result = []; userData.forEach( (element) => { if(element.id !="" && element.registrationid ==""){ console.log("1"); result.push(element); } else if(element.registrationid !="" && element.id ==""){ console.log("2"); element.id = element.registrationid; result.push(element); } else if(element.registrationid !="" && element.id !=""){ console.log("3"); if(element.id == element.registrationid){ console.log("4"); element.id = element.registrationid; result.push(element); }else if(element.id != element.registrationid){ console.log("5"); result.push(element) element.id = element.registrationid; result.push(element) } } }); console.log(result)

La matriz de resultados de salida esperada debería devolver

 [ { "id": 1, "name": "abcd", "place":"xyz", "registrationid": 100 }, { "id": 100, "name": "abcd", "place":"xyz", "registrationid": 100 }, ];

Pasé por esto, pero no pude tener ninguna idea, por favor, ayúdenme, muchachos.

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

0

Cree una copia en el paso 3b:

 var userData = [{ "id": 1, "name": "abcd", "place": "xyz", "registrationid": 100 }]; var result = []; userData.forEach((element) => { if (element.id != "" && element.registrationid == "") { console.log("1"); result.push(element); } else if (element.registrationid != "" && element.id == "") { console.log("2"); element.id = element.registrationid; result.push(element); } else if (element.registrationid != "" && element.id != "") { console.log("3"); if (element.id == element.registrationid) { console.log("4"); result.push(element); } else if (element.id != element.registrationid) { console.log("5"); result.push({ ...element }) element.id = element.registrationid; result.push(element) } } }); console.log(result)

La asignación en 3a no tiene sentido. Lo quité. prefiero flatMap

 var userData = [{ "id": 1, "name": "abcd", "place": "xyz", "registrationid": 100 }]; var result = userData.flatMap((element) => { if (element.id != "" && element.registrationid == "") { console.log("1"); return element; } else if (element.registrationid != "" && element.id == "") { console.log("2"); element.id = element.registrationid; return element; } else if (element.registrationid != "" && element.id != "") { console.log("3"); if (element.id == element.registrationid) { console.log("4"); return element; } else if (element.id != element.registrationid) { console.log("5"); const oldId = element.id; element.id = element.registrationid; return [{ ...element, id: oldId }, element]; } } }); console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Por favor intenta lo siguiente

 const userData = [{ "id": 1, "name": "abcd", "place": "xyz", "registrationid": 100 }]; const result = []; userData.forEach((data) => { if (data.id && !data.registrationid) { result.push(data); } if (!data.id && data.registrationid) { const output = { ...data, id: data.registrationid } result.push(output) } if (data.id && data.registrationid) { if (data.id === data.registrationid) { result.push(data); } else { const obj1 = {...data, id: 1}; const obj2 = {...data, id: 100} result.push(obj1, obj2) } } }); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podrías crear un nuevo objeto si quieres hacer este negocio

 var userData = [ { id: 1, name: "abcd", place: "xyz", registrationid: 100, }, ]; var result = []; userData.forEach((element) => { let newEl; if (element.id != "" && element.registrationid == "") { newEl = { ...element }; result.push(newEl); } else if (element.registrationid != "" && element.id == "") { newEl = { ...element, id: element.registrationid }; result.push(newEl); } else if (element.registrationid != "" && element.id != "") { result.push(element); if (element.id != element.registrationid) { newEl = { ...element, id: element.registrationid }; result.push(newEl); } } }); console.log(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