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

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

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 Denunciar

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 Denunciar

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