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

112
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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