👋 Opa, Gabriel e Pedro aqui e seja bem-vindo para mais um episódio da nossa newsletter semanal, a Challenge House. Toda quinta-feira, temos a solução de um desafio JavaScript que foi divulgado no início da semana.
👋 Opa, Gabriel e Pedro aqui e seja bem-vindo para mais um episódio da nossa newsletter semanal, a Challenge House. Toda quinta-feira, temos a solução de um desafio JavaScript que foi divulgado no início da semana.
Vem com a gente que lá vem história…
|
|
No início da semana, compartilhamos o desafio para mostrar quantas vezes um caractere apareceu em uma determinada frase.
Sem mais demora, a solução em formato de código é essa aqui:
function countChar(char, phrase) {
/*
Inicializamos um contador com zero, para usar ele como referência ao procurar pelo nosso caractere.
*/
let count = 0;
/*
Montamos uma estrutura de loop para poder iterar em cima de cada caractere da nossa string.
A variável 'position' é que irá armazenar em qual caractere estamos passando pelo loop.
Observe que o ponto de parada é justamente o tamanho da nossa frase.
*/
for (let position = 0; position < phrase.length; position++) {
/*
A partir de agora, temos acesso a cada caractere, por meio do valor 'phrase[position]'.
Basta checar se 'phrase[position]' é igual ao nosso caractere desejado, o `char`.
Se isso acontecer, pegaremos o nosso contador de referência e somamos +1.
*/
if (phrase[position] === char) count++;
}
/*
Uma vez que o loop terminou, basta retornar o nosso contador lá do início.
*/
return count;
}Não acredita que o código ali em cima funciona? Criamos uma execução dele no CodePen para você poder ver de perto. Basta rodar 👇
Não adianta viver de CTRL + C e CTRL + Z. É preciso entender o motivo daquele código rodar da forma correta. Vamos lá?
1 - Declarando um contador
Se estamos querendo contar quantas vezes um certo caractere apareceu, nada melhor do que ter uma variável que irá guardar esse valor, não é mesmo?
Com isso em mente, inicializamos um count na primeira linha da nossa função com o valor zero e toda vez que acharmos o caractere na frase, iremos incrementar +1.
É importante ressaltar aqui que como essa variável terá o valor alterado durante o código, é preciso que seja uma variável let.
2 - Passando por cada caractere da frase
Quando pensamos em passar por cada coisa de algo maior, a ideia que vem na nossa mente deve ser sempre o mais próximo de um loop.
Como mencionado na Dica de ouro do texto anterior, precisamos checar caractere por caractere. Para isso, criamos um for loop que o seu ponto de parada é justamente o tamanho da frase (phrase).
Desse modo, em cada iteração do for loop, o valor da variável position será a posição de um determinado caractere.
3 - Checando o caractere atual com o desejado
Uma das formas de acessar um único caractere de uma string no JavaScript é pela seguinte sintaxe:
const phrase = 'Sou uma string';
console.log(phrase[2]);
/* Retorna 'u' */Dessa maneira, utilizamos dessa sintaxe com o for loop para acessar a posição atual daquele caractere e verificar se é igual ao nosso char desejado.
Caso isso ocorra, basta somar +1 no nosso contador e correr para o abraço.
4 - Retornando o contador
Para finalizar, o nosso loop já acabou de trabalhar e a variável count já está com o valor desejado. Feito isso, retornamos este número.
Se você pensou de outra maneira e fez o um código diferente, iríamos adorar saber a solução também. Sinta-se a vontade para chamar a gente no instagram da Challenge House ou responder por email esta newsletter.
Se você achou o conteúdo dessa newsletter interessante, pense com carinho em fazer alguma dessas coisas:
1. ❤️ Compartilhar com os amigos - é com a sua ajuda que iremos levar o Challenge House para cada vez mais pessoas.
2. ✉️ Se inscrever na nossa newsletter - se ainda não é, iremos ficar muito felizes com a sua inscrição.
Até segunda-feira,
Gabriel e Pedro 👋