Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

111
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!