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

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

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 Report

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 Report

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