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

110
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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