Oi, Tiago! Tudo bem?
O que está ocorrendo no nosso código é o seguinte: na função cifrarMensagem
estamos buscando cifrar uma mensagem, para isso passamos dois parâmetros para essa função, mensagem
e movimentos
, de forma que mensagem
se refere à palavra que vai ser cifrada e movimentos
se refere ao deslocamento que será feito em cada caractere da mensagem original através da movimentação das posições de cada caractere para a frente na tabela ASCII.
Dessa forma, a função cifrarMensagem
irá receber "alura" como o parâmetro mensagem
, logo "alura" será a palavra a ser cifrada. Em seguida, a função split('')
irá converter a string "alura" em um array de caracteres individuais, contendo os caracteres ["a", "l", "u", "r", "a"]
.
Após isso, a função map
é aplicada a esse array, e para cada caractere, o código ASCII correspondente é obtido usando charCodeAt(0)
. Em seguida, é adicionado o valor de movimentos
a esse código para obter o código do caractere cifrado. Ou seja, é incrementado 4 ao valor da posição do código Unicode na tabela ASCII para cada caractere, ocorrendo para cada caractere a conversão como podemos observar na imagem abaixo da tabela ASCII:
Após isso, a função String.fromCharCode
é usada para converter os valores Unicode em caracteres correspondentes. Dessa forma, o array de caracteres caracteres ["a", "l", "u", "r", "a"]
se transforma no array de caracteres ["e", "p", "y", "v", "e"]
, um novo array com os caracteres cifrados.
Em seguida, a função join("")
é usada para unir todos os caracteres do array em uma única string, que é retornada pela função cifrarMensagem
. Por isso o retorno do código é a string "epyve".
Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓