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

103
Vistas
¿Cómo verifica dos cadenas en JS y determina si alguna letra en cada una se coloca en la misma fila de letras?

He estado buscando por todas partes una solución, pero parece que no puedo encontrarla. Estoy tratando de hacer una función que verifique dos cadenas diferentes para identificar cualquier palabra en la misma posición de cada palabra y generar eso como un número. Un ejemplo:

"estéril" "reunión"

Estas dos palabras tienen una E y una I en el mismo lugar. Da igual las letras que existen en los dos, pero codificadas (tengo una solución para esto, pero no me sirve me temo). Estoy tratando de construir algo que genere 2 para las dos letras que coinciden.

Así que sí, ¿cómo podría hacer que esto funcione? El código a continuación es el que no funciona, que verifica las letras existentes en ambos, y no si coinciden exactamente dentro de las palabras. ¿Quizás estoy viendo algo mal con eso?

 var str1 = "sterile"; var str2 = "meeting"; function second() { return Array.prototype.filter.call(str1, function(c) { return str2.indexOf(c) === -1; }, this).join(''); } function second() { return Array.prototype.filter.call(str1, function(c) { return str2.indexOf(c) === -1; }, this).join(''); } console.log(second(str1, str2)); console.log(str1.length - second(str1, str2).length); ```
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Podría optimizarse y podría contar para algunos casos extremos, pero esto podría funcionar.

 const str1 = 'sterile'; const str2 = 'meetinghey'; function stringEqualityCheck(str1, str2) { const longestString = str1.length > str2.length ? str1 : str2; const longestStringArray = longestString.split(''); const shortestString = str1.length > str2.length ? str2 : str1; let equalityCounter = 0; shortestString.split('').forEach((letter, index) => { if (letter === longestStringArray[index]) { equalityCounter++; } }); return equalityCounter; } console.log(stringEqualityCheck(str1, str2));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto debería hacer el trabajo :)

 const str1 = "sterile"; const str2 = "meetinghey"; const getSameLetters = (a, b) => { const minLength = Math.min(a.length, b.length); const sameLetters = [] for (let i = 0; i < minLength; i++) { if (a[i] === b[i]) { sameLetters.push({ i, letter: a[i] }) } } return sameLetters } console.log(getSameLetters(str1, str2))

o lo siguiente, si solo te importa el número de las mismas letras:

 const str1 = "sterile"; const str2 = "meetinghey"; const getSameLetters = (a, b) => { const minLength = Math.min(a.length, b.length); let sameLetters = 0 for (let i = 0; i < minLength; i++) { if (a[i] === b[i]) { sameLetters++ } } return sameLetters } console.log(getSameLetters(str1, str2))

La idea detrás de esos algoritmos es esta:

  1. Dado que solo queremos encontrar letras que coincidan en el mismo índice en ambas palabras, debemos iterar solo hasta el final de la palabra más pequeña. Debido a que no desea comparar "char" indefinido con un "char" de otra cadena, nunca coincidirán. Eso es lo que Math.min(a.length, b.length) .
  2. Luego iteramos de cero a minLength . En cada ciclo de ciclo comparamos letras en el mismo índice de cadenas a y b . Si las letras coinciden, incrementamos sameLetters en uno y continuamos el ciclo.
  3. Retorna sameLetters - ese es el número que estamos buscando, el número de la misma letra bajo el mismo índice :)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Una forma breve y sencilla de lograr esto es dividir una de las palabras en una matriz usando split , luego iterando sobre esa matriz usando forEach para ver si el carácter en cada posición es igual al carácter en esa misma posición en la otra palabra, y aumentando el contador si son iguales.

 const str1 = "sterile"; const str2 = "meeting"; checkWords = (a, b) => { let count = 0; a.split('').forEach((letter, index) => letter === b[index] ? count++ : ''); return count; } console.log(checkWords(str1,str2));

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