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

192
Visualizações
Combinar 2 arreglos y crear uno nuevo

Tengo 2 matrices esto

 let array1 = [ { designation: "SSE", emailId: "abc@gmail.com", employeeId: 1997, firstName: "user2", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 19, firstName: "user1", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 191, firstName: "user1", }, ]; let array2 = [ { designation: "SSE", emailId: "abc@gmail.com", employeeId: 199, firstName: "user2", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 19, firstName: "user1", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 191, firstName: "user1", }, { designation: "TESTER", emailId: "ab@gmail.com", employeeId: 1221, firstName: "user1", }, ];

Mira, tengo algunos registros comunes en ambas matrices y falta uno en array2. Quiero fusionarlos en uno solo si employeeId no coincide. Como esto.

 let array3 = [ {employeeId: 1997, isActive: false}, {employeeId: 199, isActive: true}, {employeeId: 19, isActive: true}, {employeeId: 191, isActive: true}, {employeeId: 1221, isActive: false} ]

array3[3].isActive es falso porque no coincide en ambas matrices.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

  1. Obtenga una matriz de employeeId de array1
  2. Obtenga una matriz de employeeId de array2
  3. Cree una matriz con todos los ( únicos ) emplyeeId's
  4. Cree una matriz con las ID que no coinciden
  5. map() sobre todos los ids ( array_0_ids ) para:
    1. Crear un objeto
    2. Establezca isActive en el resultado de !non_matching.includes(emplyeeId)

 let array1 = [{designation: "SSE", emailId: "abc@gmail.com", employeeId: 199, firstName: "user2", }, {designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 19, firstName: "user1", }, {designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 191, firstName: "user1", }, ]; let array2 = [{designation: "SSE", emailId: "abc@gmail.com", employeeId: 199, firstName: "user2", }, {designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 19, firstName: "user1", }, {designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 191, firstName: "user1", }, {designation: "TESTER", emailId: "ab@gmail.com", employeeId: 1221, firstName: "user1", }, ]; let array_1_ids = array1.map(i => i.employeeId); let array_2_ids = array2.map(i => i.employeeId); let array_0_ids = [ ...array_1_ids, ...array_2_ids ].filter((v, i, s) => s.indexOf(v) === i); let non_matching = array_2_ids.filter(id => !array_1_ids.includes(id)); let result = array_0_ids.map(emplyeeId => { return { emplyeeId, isActive: !non_matching.includes(emplyeeId) }; }); console.log(result);

 [ {"emplyeeId": 199, "isActive": true }, {"emplyeeId": 19, "isActive": true}, {"emplyeeId": 191, "isActive": true}, {"emplyeeId": 1221, "isActive": false} ]
about 4 years ago · Juan Pablo Isaza Relatório

0

let result = []; const employeeIdArray2 = array2.map(e => e.employeeId); const employeeIdArray1 = array1.map(e => e.employeeId); const missingEmployeeIdArray = employeeIdArray2.length > employeeIdArray1.length ? employeeIdArray1 : employeeIdArray2; result = array2.map(e => { if (missingEmployeeIdArray.includes(e.employeeId)) { return { ...e, isActive: true } } else { return { ...e, isActive: false } } })
about 4 years ago · Juan Pablo Isaza Relatório

0

  1. Cree un objeto donde la clave será el empleadoId y el valor será el número de ocurrencias
  2. Cree la matriz final iterando sobre las entradas del objeto, establezca isActive en verdadero cuando el número de ocurrencias sea 2.

 const array1 = [ { designation: "SSE", emailId: "abc@gmail.com", employeeId: 199, firstName: "user2", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 19, firstName: "user1", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 191, firstName: "user1", }, ]; const array2 = [ { designation: "SSE", emailId: "abc@gmail.com", employeeId: 199, firstName: "user2", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 19, firstName: "user1", }, { designation: "DEVELOPER", emailId: "ab@gmail.com", employeeId: 191, firstName: "user1", }, { designation: "TESTER", emailId: "ab@gmail.com", employeeId: 1221, firstName: "user1", }, ]; const reducer = (acc, e) => ({ ...acc, [e.employeeId]: (acc[e.employeeId] + 1) || 1, }); const arr3 = Object.entries([...array1, ...array2].reduce(reducer, {})) .map(([employeeId, count]) => ({ employeeId, isActive: count == 2 })); console.log(arr3);

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