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

245
Visualizações
al menos uno de los valores en la matriz de "datos" obj array1 coincide con la matriz de "datos" en el objeto array2

al menos uno de los valores en la matriz "datos" obj matriz1 coincide con la matriz "datos" en el objeto matriz2

 > array1 array1 = [ { id: '1', name: 'ron', data: ['p1'] }, { id: '2', name: 'lon', data: ['p2'] }, { id: '3', name: 'voon', data: ['p4'] } ]; > array2 array2 = [ { id: '1', name: 'fgr', data:['p1','p2','p3'] }, { id: '2', name: 'gone', data:['p1','p2','p3'] } ]

salida: { id: '1', nombre: 'ron', datos: ['p1'] }, { id: '2', nombre: 'lon', datos: ['p2'] }

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

0

Con el siguiente supuesto:

  • array1 tiene objetos, cada uno de los cuales siempre tiene data prop, que es una matriz
  • array2 también tiene objetos y estos objetos siempre tendrán data utilería que también son una matriz
  • el objetivo buscado es generar un arreglo con objetos de array1 cuyos data tengan al menos un elemento común con alguno de los data de los objetos de array2 .

esta solución puede funcionar:

 const findNeedleInHaystack = (needle = array1, haystack = array2) => ( needle.reduce((acc, itm) => ( haystack .map(x => x.data) .flat() .some(x => itm.data.includes(x)) ? [...acc, itm] : [...acc] ), []) );

Explicación

  • iterar sobre la matriz de needle (es decir, matriz1) usando .reduce
  • use .map en la matriz haystack (es decir, matriz2) para separar los data de cada objeto
  • use .flat() para transformar la matriz resultante de 2 dimensiones en 1 dimensión
  • use .some para ver si algún elemento en la matriz unidimensional también está presente en la matriz de data de itm
  • si lo encuentra, concatene itm con el resultado (usando ... operador de propagación en acc - el agregador/acumulador)
  • si no lo encuentra, omita la concatenación de itm .

Fragmento de código

 const array1 = [ { id: '1', name: 'ron', data: ['p1'] }, { id: '2', name: 'lon', data: ['p2'] }, { id: '3', name: 'voon', data: ['p4'] } ]; const array2 = [ { id: '1', name: 'fgr', data:['p1','p2','p3'] }, { id: '2', name: 'gone', data:['p1','p2','p3'] } ]; const findNeedleInHaystack = (needle = array1, haystack = array2) => ( needle.reduce((acc, itm) => ( haystack.map(x => x.data).flat().some(x => itm.data.includes(x)) ? [...acc, itm] : [...acc] ), []) ); console.log(findNeedleInHaystack());

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