// Reto del día del programador Profile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Esta será la función que llamaremos para decodificar nuestro texto | |
function decoded(encodedTxt) { | |
/* Creamos una cadena de texto con el abecedario y mediante al método split() dividimos | |
dicha cadena de texto en un array de caracteres */ | |
let alphabet = "abcdefghijklmnñopqrstuvwxyz".split(""); | |
// En este variable guardaremos el texto decodificado | |
let decodedTxt = ""; | |
/* Con esto hemos que hemos pasado como parametro entre los () de la función de mayusculas a minisculas, | |
y finalmente, hemos utilizado el método forEach que nos permite recorrer nuestro array de caracteres | |
uno a uno*/ | |
encodedTxt.toLowerCase().split("").forEach(item => { | |
//Si el caracter es un espacio lo añadimos a decodedTxt | |
if (item === " ") { | |
decodedTxt += item; | |
} | |
/* Verificamos que el caracter exista en el array ya que sino el método indexOf devolvería -1 | |
y no entraría en el bloque */ | |
else if (alphabet.indexOf(item) != -1) { | |
/* Obtenemos la posición del caracter en el abecedario caracteres de abecedario | |
y le restamos 5 posiciones */ | |
if (alphabet.indexOf(item) >= 5) { | |
decodedTxt += alphabet[(alphabet.indexOf(item) - 5)]; | |
} | |
/* Si el caracter que seleccionamos es A (posición 0) por ejemplo, no podemos restarle 5 | |
ya que nos saldriamos fuera de los elementos que existe en el array de char y esto provocaría | |
un error. Por tanto, tenemos que hacer un calculo que nos permita coger la longitud total del | |
array y restarle a dicha posición la posición actual del caracter A para en estos escenarios/casos | |
coger el caracter del final del array y no del principio*/ | |
else if (alphabet.indexOf(item) <= 4) { | |
decodedTxt += alphabet[alphabet.length + alphabet.indexOf(item) - 5]; | |
} | |
} | |
}); | |
// Imprimimos el resultado | |
console.log(decodedTxt.toUpperCase()); | |
} | |
// 'FELIZ DIA DE LOS PROGRAMADORES' | |
const txtEncrypted = 'KJPNE INF IJ PTX UWTLWFQFITWJX'; // Texto a desencriptar | |
decoded(txtEncrypted); // Llamamos a la función pasandole como parametro el texto a desencriptar |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment