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

111
Visualizações
Cómo comparar elementos consecutivos en dos matrices diferentes

Tengo dos matrices, todas con valores únicos y quiero compararlas para obtener una lista de todos los valores consecutivos

 const array1 = [1a,4a,3h,78h,5b,6b,7h] const array2 = [3h,1a,4a,5b,6b,7h]

En este caso, quiero comparar cualquier número de valores coincidentes consecutivos. Quiero una lista de todos los pares o cualquier número de valores únicos coincidentes consecutivos que tengan, lo que me da una lista como esta.

 const array3 =[[1a,4a],[5b,6b,7h]]

¿Cuál sería la mejor manera de hacer esto?

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

0

La única solución que se me ocurre es (debería haber muchas mejores), primero para crear todos los subarreglos posibles: por ejemplo: const array1 = [1a,4a,3h,78h,5b,6b,7h] const array2 = [3h,1a ,4a,5b,6b,7h]

submatriz const = [[1a,4a],[3h], [5b,6b,7h]]

una vez que tenga el subarreglo, puede asignarlos a un nuevo arreglo con su ubicación máxima en cualquier arreglo con respecto al subarreglo:

const maxLocation = [[1,2][2][4,5,6]]; Ahora necesitas encontrar la secuencia más larga => [[1,2][4,5,6]]

about 4 years ago · Juan Pablo Isaza Relatório

0

fetchValues = (array1, array2) => { let result = [[]]; let loop = (i, j) => { if (i >= array1.length || j >= array2.length) { return; } if (array1[i] == array2[j]) { result[result.length - 1].push(array1[i]); loop(++i, ++j); return; } let nextIndex1 = array1.indexOf(array2[j], i); let nextIndex2 = array2.indexOf(array1[i], j); nextIndex1 = nextIndex1 < 0 ? Infinity : nextIndex1; nextIndex2 = nextIndex2 < 0 ? Infinity : nextIndex2; if (nextIndex1 !== Infinity || nextIndex2 !== Infinity) { result[result.length - 1].length === 0 || result.push([]); nextIndex1 > nextIndex2 ? loop(i, nextIndex2) : loop(nextIndex1, j) } } loop(0, 0); const finalresult= result.filter(array=>array.length>1) return finalresult; }

Esta es la forma en que me funcionó. Si alguien tiene otra forma, no dude en compartirla.

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