Skip to content

Instantly share code, notes, and snippets.

@JoaoRoccella
Last active June 2, 2025 16:38
Show Gist options
  • Select an option

  • Save JoaoRoccella/ea10d4c4c67fc68c962212ad9cba0f53 to your computer and use it in GitHub Desktop.

Select an option

Save JoaoRoccella/ea10d4c4c67fc68c962212ad9cba0f53 to your computer and use it in GitHub Desktop.
Funções no JavaScript - Exercícios

Atividade Prática: Clínica Veterinária SenaiPet

Contextualização

Uma clínica veterinária chamada SenaiPet está digitalizando seu sistema de cadastro e gestão de animais. Você foi contratado como desenvolvedor júnior para criar uma solução inicial que permita:

  • Cadastrar animais (nome, espécie e idade);
  • Listar animais cadastrados;
  • Exibir uma saudação personalizada de cada animal (simulada como se fosse "fala" do animal);
  • Calcular a idade do animal em "anos humanos" (para fins fictícios de acompanhamento).

O sistema será executado diretamente no console do navegador.

Desafio Técnico

Implemente um script em JavaScript que atenda aos seguintes requisitos técnicos obrigatórios:

Criação de um objeto construtor (function) chamado Pet com os seguintes atributos:

  • nome
  • especie
  • idade

O objeto deve conter também os seguintes métodos:

  • falar: retorna uma string no formato "Oi, eu sou [nome] e sou um [espécie]".

  • idadeHumana: retorna a idade do animal convertida para anos humanos com base nas seguintes regras:

    • Cachorro: idade × 7
    • Gato: idade × 6
    • Outros: idade × 5

⚠️ Este método deve usar this corretamente para acessar os atributos do objeto.

Criação de um array chamado meusPets que irá armazenar os pets cadastrados.

Implemente as funções utilizando obrigatoriamente:

  • Uma arrow function para listar todos os pets cadastrados no array, imprimindo no console seus dados no seguinte formato:
Nome: Rex, Espécie: Cachorro, Idade: 5 anos
  • Uma função anônima atribuída a uma constante para buscar um pet pelo nome no array. Esta função deve retornar o objeto correspondente ou uma mensagem "Pet não encontrado".

  • Uma função de ordem superior (que recebe outra função como parâmetro) chamada executarAcaoNosPets que percorre todos os pets e executa a função recebida. O parâmetro será sempre uma função anônima ou uma arrow function.

Restrições de implementação

  • Não é permitido utilizar classes (class).
  • Não é permitido utilizar prompt ou qualquer input externo (apenas dados simulados no código).
  • As funções devem ser criadas obrigatoriamente usando os formatos solicitados (arrow function, função anônima atribuída a variável, função de ordem superior).
  • O método falar deve obrigatoriamente utilizar this corretamente.

Dados de exemplo para o array meusPets:

const meusPets = [
    new Pet("Rex", "Cachorro", 5),
    new Pet("Mimi", "Gato", 3),
    new Pet("Pingo", "Coelho", 2)
];

Entrega

  • Repositório no GitHub com os arquivos .html e .js contendo o código funcional.
  • Comentários no código explicando onde foram aplicados cada conceito (arrow function, função anônima, this, função de ordem superior).

Desafio bônus (opcional)

Implemente uma função que permita remover um pet do array meusPets pelo nome, utilizando uma arrow function combinada com o método filter().

Exemplo de execução esperada (no console)

Oi, eu sou Rex e sou um Cachorro
Idade humana de Rex: 35 anos
Pet encontrado: Mimi, espécie: Gato, idade: 3 anos
Nome: Rex, Espécie: Cachorro, Idade: 5 anos
Nome: Mimi, Espécie: Gato, Idade: 3 anos
Nome: Pingo, Espécie: Coelho, Idade: 2 anos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment