Iniciante em javascript questão de function

JavaScript function arrays Return

Estou com bastante dúvida: Vezes que uma letra aparece Tenho que implementar uma função vezesLetraAparece, que:

1- recebe 2 parâmetros: frase, que deve ser uma string e letra que deve ser outra string;

2- retorne o número de vezes que a letra aparece na frase;

 

function vezesLetraAparece(frase, letra) { (não consigo fazer)

Foto de Nathalia S.
Nathalia perguntou há 2 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
2 respostas
1
votos
1 usuário votou nessa resposta como útil.
Professor Angelo R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Melhor resposta
Essa foi a melhor resposta, escolhida pelo autor da dúvida

É bem tranquilo, fiz a algum tempo:

https://codepen.io/angelorubin/pen/qBVWBQW?editors=0011

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Rafael F.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos

Bom dia, outro aluno chegou a perguntar sobre a mesma questão. Vou postar a mesma resposta que dei a ele:

 

Pra mim, a forma mais direta de se fazer isso seria com o método split() que o Javascript oferece para strings. O método encontra todas as vezes que uma substring oferecida como argumento é encontrada, e fatia a string em seções antes e depois de cada string, juntando todas as seções numa array. Por exemplo, "javascript ascii".split("asc") retornaria ["jav","ript ","ii"]. O bom do método para o nosso caso é que ele também oferece fatias vazias se a substring se encontra nas extremidades da string ou duas ocorrências se encontram adjacentes., o que nos dá confiança quanto à quantidade de elementos na array resultante. Por exemplo, "paralelepípedo".split("le") retornará ["para","","pípedo] e "bom-bom".split("bom") retorna ["","-",""].

O código ficaria assim:

function vezesLetraAparece(frase, string) {

  return (frase.split("string")).length() - 1;

}

Algumas considerações adicionais podem ser feitas: o método .split() diferencia letras maiúsculas e minúsculas, então se você estiver esperando uma frase com letras maiúsculas, seria interessante aplicar o método toLowerCase() pra passar tudo para minúsculas. Outra questão é se é ou não permitido que a string que você quer contar na frase contenha mais de um caractere, já que o enunciado sugere que você está procurando conferir única letra; ademais, há a possibilidade de a função receber coisas como números, símbolos, e tudo o mais (seria fácil conferir isso via RegExp, mas parece fora do escopo da questão, então não vamos levar isso em questão).

Juntando essas considerações, talvez seu código fique mais parecido com isso:

function vezesLetraAparece(frase, string) {

  if(string.length > 1) {

    console.warn("Você inseriu mais de uma letra!");

  }

  return ((frase.toLowerCase()).split("string")).length() - 1;

}

Ah, e no caso de você não tiver acesso à função split() (talvez seu professor ainda não tenha ensinado), o que eu faria seria algo do tipo:

function vezesLetraAparece(frase, letra) {

  let contagem = 0;

  for(let i=0; i<frase.length; i++) {

    if(frase[i] === letra) contagem++;

  }

  return contagem;

}

Ainda há algumas outras formas de se resolver o problema, mas acho que isso já é o bastante, não é? Espero ter ajudado!

Professores particulares de JavaScript

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 80 / h
Angelo R.
Rio Claro / SP
Angelo R.
4,3 (4 avaliações)
Tarefas resolvidas 5 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
JavaScript - CSS Javascript Geral JavaScript - React
Graduação: Gestão de Tecnologia da Informação (Centro Brasileiro de Tecnologia Aplicada)
Aulas de desenvolvimento frontend iniciantes (html, css, javascript)
R$ 70 / h
Lucas M.
Maceió / AL
Lucas M.
4,4 (36 avaliações)
Horas de aulas particulares ministradas 373 horas de aula
Tarefas resolvidas 2 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
JavaScript - Estrutura de Repetição Condicional Jquery JavaScript - Estrutura Condicional ou de Seleção
Especialização: Segurança e defesa cibernética (Unninter)
Aulas presenciais e online de computação e programação com foco em projetos reais.