3. Funções#
Exercício#
Uma plataforma de streaming calcula estatísticas de reprodução dos usuários.
1. Escreva uma função calcularTempo(minutos, segundos) que retorne o tempo total em segundos.
calcularTempo(3, 45); // 225
calcularTempo(5, 0); // 300
2. Escreva uma função classificarMusica(reproducoes) que retorne "Hit" para músicas com mais de 1000 reproduções, "Popular" para mais de 500 e "Iniciante" para as demais.
classificarMusica(1500); // "Hit"
classificarMusica(750); // "Popular"
classificarMusica(200); // "Iniciante"
3. Reescreva calcularTempo e classificarMusica como funções seta.
4. Escreva uma função analisarMusica(minutos, segundos, reproducoes) que calcule o tempo total usando calcularTempo e retorne um objeto com o tempo e a classificação da música.
analisarMusica(3, 45, 1500);
// { tempo: 225, classificacao: "Hit" }
5. Escreva uma função criarFiltro(minimoReproducoes) que retorne uma função que receba o número de reproduções e retorne true se atingir o mínimo.
let filtroHit = criarFiltro(1000);
let filtroPopular = criarFiltro(500);
filtroHit(1500); // true
filtroHit(750); // false
filtroPopular(750); // true
filtroPopular(200); // false
Em seguida, escreva uma função filtrarMusicas(musicas, filtro) que receba um array de objetos com a propriedade reproducoes e retorne apenas as músicas que passam no filtro.
let musicas = [
{ titulo: "Neon Lights", reproducoes: 1500 },
{ titulo: "Slow Dance", reproducoes: 750 },
{ titulo: "First Draft", reproducoes: 200 },
];
filtrarMusicas(musicas, filtroHit); // [{ titulo: "Neon Lights", reproducoes: 1500 }]
filtrarMusicas(musicas, filtroPopular); // [{ titulo: "Neon Lights", ... }, { titulo: "Slow Dance", ... }]