Funções

JavaScript
Neste desafio, você deve implementara função vezesLetraAparece, que: • recebe 2 parâmetros: frase, que deve ser uma string e letra outra string; • retorne o número de vezes que letra aparece na frase
Foto de Julio C.
Julio perguntou há 2 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Rafael F.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos

O enunciado não deixa claro como exatamente a função vai ser usada no programa, então partiremos do princípio que ela irá retornar um valor. 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!

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.

Professores particulares de JavaScript

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 75 / h
Rafael F.
Rio de Janeiro / RJ
Rafael F.
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
JavaScript - html JavaScript Básico JavaScript ES6
Graduação: Engenharia de Materiais (Universidade Federal do Rio de Janeiro (UFRJ))
Estou ensinando produção musical e programação web, e seria um prazer te ajudar a ser fera em uma destas capacidades!
R$ 70 / h
Vinícius B.
Santo André / SP
Vinícius B.
5,0 (13 avaliações)
Horas de aulas particulares ministradas 19 horas de aula
Tarefas resolvidas 5 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
JavaScript - Estrutura Condicional e operadores lógicos. Expressões lógicas. JavaScript Básico JavaScript - Estrutura de Repetição Condicional
MBA: Business Intelligence (Faculdade Descomplica)
Te ensino a programar. Professor de programação, com 5 anos de atuação em .net, sql, entity framework, scrum etc.
R$ 50 / h
Gustavo A.
Campina Grande / PB
Gustavo A.
5,0 (2 avaliações)
Horas de aulas particulares ministradas 7 horas de aula
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
JavaScript Básico JavaScript - Estrutura de Repetição Condicional JavaScript - Estrutura Condicional ou de Seleção
Graduação: Engenharia da Computação (IFPB - Campus Campina Grande )
Desenvolvedor web python e javascript. Acompanhamento particular em python, html,css e javascript