Skip to content

Instantly share code, notes, and snippets.

@DavidBernalGonzalez
Created September 19, 2021 06:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DavidBernalGonzalez/d9b7c9b06b62429dc4281dfa6bf28abe to your computer and use it in GitHub Desktop.
Save DavidBernalGonzalez/d9b7c9b06b62429dc4281dfa6bf28abe to your computer and use it in GitHub Desktop.
// Reto del día del programador Profile
// 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