programandoai

Desafio final

As duas funções que sustentam o painel inteiro, sozinhas e testáveis: filtrar por categoria e somar o total de uma lista.

Estudar esta lição interativa →

As duas funções que fazem o painel inteiro funcionar, exatamente como você as viu nos passos 3 e 2, agora para você escrever do zero: filtrarPorCategoria(despesas, categoria), que devolve a lista inteira quando a categoria é "todas" ou só as despesas daquela categoria, e totalDespesas(lista), que soma o campo valor de cada despesa da lista recebida.

Complete filtrarPorCategoria(despesas, categoria) (devolve despesas inteiro se categoria for "todas", senão só as que batem) e totalDespesas(lista) (soma o valor de cada despesa).
function filtrarPorCategoria(despesas, categoria) {
  // dica: se categoria === "todas", devolva despesas como está
  // senão, use .filter() mantendo só quem tem essa categoria
}

function totalDespesas(lista) {
  // dica: use .reduce(), somando o campo valor de cada item
}

🧩 Este é um exercício com correção automática — abra no app para completá-lo e verificar.

Fim de curso: o que você construiu

Seis projetos, do zero até aqui: uma calculadora com estado de verdade, um quiz orientado a dados, uma lista de compras com persistência, um jogo com regras de comparação, um buscador consumindo uma API real e um dashboard que junta tudo isso num painel só. Em cada um, a mesma disciplina se repetiu: separar a lógica pura (fácil de testar) dos efeitos no DOM, deixar o array ser a fonte da verdade e a tela só o reflexo dele, e tratar com honestidade os casos em que algo pode dar errado.

Esses hábitos não são exclusivos de nenhum projeto específico: eles são a diferença entre "código que funciona uma vez, no seu computador" e "código em que dá para confiar". Se quiser continuar construindo, dois caminhos naturais a partir daqui: o curso de TypeScript, que adiciona uma camada de segurança de tipos exatamente sobre o JavaScript que você já domina, ou simplesmente escolher um problema seu de verdade (uma lista, um controle, um pequeno jogo) e construir do zero, com as mesmas ferramentas que você acabou de praticar nestes seis projetos. E antes de tudo isso, um passo que transforma exercício em portfólio: publicar os seis, na próxima lição.

← Voltar ao índice do curso