Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Acabei executando a Aula Filter Livros de uma maneira diferente, Podeiram validar se é uma boa prática seguindo dessa maneira, por favor

//Declaração de variável para busca para todos os botões
const botoes = document.querySelectorAll(".btn")

// Adicionando o ouvinte de evento para o clique nos botões
botoes.forEach(botao =>{
    botao.addEventListener("click", (evento)=>{
        evento.preventDefault();

        const categoriaBotao = evento.target.value;

        filtrarLivros(categoriaBotao);
    })
})

function filtrarLivros(filtro){

    const livrosFiltrados = livros.filter(livro =>livro.categoria == filtro
    )
    console.table(livrosFiltrados);
}
1 resposta
solução!

Olá Ismael!

Dei uma olhada na forma que foi feita na aula e no seu formato.

Primeiro, ambas soluções resolvem o problema, ou seja, neste quesito ambas atendem.

O que diferencia elas então é nas vantagens e desvantagens que cada implementação tem, existem várias formas de você construir uma solução ou resolver um problema, agora qual delas e a mais ideal vai depender de vários fatores como clareza e facilidade de manutenção (para quando outro dev for mexer ou vc mesmo no futuro), flexibilidade para mudanças, reusabilidade dela, eficiência e entre outros. Isso e algo que na nossa área acontece bastante e que com o tempo vc vai ficando cada vez melhor em encontrar entre as várias possibilidades, as melhores para cada projeto e time.

No meu ponto de vista a solução do professor ficou com a lógica mais centralizada e simplificada, o filtrarLivros se vira em fazer todas as coletas e filtros. Ela e mais fácil de compreender ao bater o olho.

Mas a sua solução fez um ótimo trabalho em isolar a funcionalidade de filtrar livros, já que vc colocou um pouco mais de responsabilidade para quem vai chamar o filtrarLivros, que agora deve passar o filtro, e assim vc pode usar ela em qualquer outro local do site. Ela e ótima para se vc precisar fazer mais filtros via outros elementos além dos botoes no site.

Tendo em mente as vantagens de cada implementação, podes se fazer a pergunta: vou precisar fazer mais filtros em outros locais? Se a resposta for "Sim, vou ter que filtrar em outros locais também" então quebro as responsabilidades e deixo mais modular! Se a resposta for "Não, vou precisar filtros só nestes .btn mesmo" então posso apenas simplificar a implementação.

Agora respondendo à sua pergunta principal, eu diria que sim, seguindo desta maneira está ok!