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

249
Visualizações
JS Encuentra la letra que falta (alfabeto - matriz)

Escriba una función que tome una matriz de letras consecutivas (crecientes) como entrada y que devuelva la letra que falta en la matriz. Siempre faltará exactamente una letra. La matriz siempre contendrá letras en un solo caso. Ejemplo:

["a","b","c","d","f"] -> "e"
["O","Q","R","S"] -> "P"

¿Por qué no funcionan mis funciones?

 function findMissingLetter(array) { let alphabetArr = Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'); let alphabetSlice = alphabetArr.slice(alphabetArr.indexOf(array[0]), alphabetArr.indexOf(array[array.length - 1]) + 1); let missingLetter = alphabetSlice.forEach((e, i) => { if (e !== array[i]) { return e; } }); return missingLetter; } function findMissingLetter(array) { let alphabetArr = Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'); let alphabetSlice = alphabetArr.slice(alphabetArr.indexOf(array[0]), alphabetArr.indexOf(array[array.length - 1]) + 1); let missingLetter = alphabetSlice.map((e, i) => { if (e !== array[i]) { return e; } })[0]; return missingLetter; }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Para buscar un elemento en una matriz, use for loop, así:

 for(let i = 0; i < array.length; i++) { if(array[i] !== alphabetSlice[i]) return alphabetSlice[i]; }

En este enfoque, buscará la primera diferencia entre dos matrices. Y la diferencia será tu letra faltante :)


¿Por qué map no funciona en este ejemplo?

La función de map toma datos y los reemplaza con datos "reorganizados". Este:

 alphabetSlice.map((e, i) => { if (e !== array[i]) { return e; } }); // for your example will create array

creará [undefined, undefined, undefined, undefined, 'e', 'f'] , por lo que el primer elemento es undefined .

¿Por qué la matriz de resultados no está undefined ?

Porque tiene una declaración de return en if . Entonces, cuando la expresión en if es falsa, no devolverá ningún valor, por lo que el valor no está undefined .

Puede leer más sobre el mapa en mdn .

about 4 years ago · Juan Pablo Isaza Relatório

0

En realidad, simplemente reemplace forEach con find y cambie lo que está devolviendo, y hará lo que sea necesario.

 function findMissingLetter(array) { let alphabetArr = Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'); let alphabetSlice = alphabetArr.slice(alphabetArr.indexOf(array[0]), alphabetArr.indexOf(array[array.length - 1]) + 1); let missingLetter = alphabetSlice.find((e, i) => e !== array[i]); return missingLetter; } console.log(findMissingLetter(["a","b","c","d","f"])) console.log(findMissingLetter(["O","Q","R","S"]))

Array.prototype.forEach() ejecuta una función proporcionada una vez para cada elemento de la matriz.

Array.prototype.find() devuelve el valor del primer elemento de la matriz proporcionada que satisface la función de prueba proporcionada.

about 4 years ago · Juan Pablo Isaza Relatório

0

No hay forma de regresar de un bucle forEach antes de que itere a través de cada elemento. Y forEach siempre devuelve undefined .

Puede encontrar la letra con const missingLetter = alphabetSlice.find((e, i) => e !== array[i]);

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