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

98
Visualizações
Filtrar dos matrices en función de los valores de otra matriz y también insertar los valores no disponibles en otra matriz

Tengo 2 matrices, una es "searchEachIndex" y otra es "datos".

Basado en la matriz "searchEachIndex", quiero filtrar la matriz "datos". es decir,

Aquí, en la matriz searchEachIndex, tengo 123 valores que coinciden con el identificador de empleo de la matriz de datos.

debe insertar el objeto en la matriz res aquí { id: 2, employeeId: 123 }, { id: 3, employeeId: 123 }, si ambos valores coinciden. de lo contrario, inserte los valores de searchEachIndex que no coinciden aquí 1234, 12 en otra matriz, es decir, matriz sin datos.

 let searchEachIndex = [123, 1234, 12] let data = [ { id: 1, employeId: 121 }, { id: 2, employeId: 123 }, { id: 3, employeId: 123 } ]; let res=[]; let noData = []; searchEachIndex.forEach(val => { data.map(item => { if(item.employeId === val) { res.push(item) } }) }) console.log('Both emp id and searchEachIndex value matched array', res); consolelog('Ids not found array', noData);

En realidad, necesito una respuesta como la siguiente: res: [{id: 2, employeeId: 123}, {id: 3, employeeId: 123}] y noData: [1234, 12]

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

0

Puede sustituir el .map con .forEach ya que no necesita que se devuelva una matriz transformada y solo está buscando un bucle for.

También puede mantener un indicador booleano que le permita saber si el val actual tenía una entrada correspondiente en la matriz de data . De esa manera, puede insertar (/ no insertar) en su matriz noData .

Desarrollando tu código:

 let searchEachIndex = [123, 1234, 12] let data = [ { id: 1, employeId: 121 }, { id: 2, employeId: 123 }, { id: 3, employeId: 123 } ]; let res=[]; let noData = []; searchEachIndex.forEach(val => { let found = false; data.forEach(item => { if(item.employeId === val) { found = true; res.push(item) } }) if(!found) noData.push(val); }) console.log('Both emp id and searchEachIndex value matched array', res); console.log('Ids not found array', noData);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede tomar un objeto para realizar un seguimiento de los valores utilizados y filtrar las matrices.

 const search = [123, 1234, 12], used = Object.fromEntries(search.map(k => [k, false])), data = [{ id: 1, employeId: 121 }, { id: 2, employeId: 123 }, { id: 3, employeId: 123 }], result = data.filter(({ employeId }) => { if (employeId in used) return used[employeId] = true; }), noData = search.filter(k => !used[k]); console.log(noData); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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