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

[Sugestão] sobre o código usando filter( )

No curso na parte usando o filter() foi usado o seguinte código com pequenas mudanças de nomes que fiz:

const botoes = document.querySelectorAll('.btn')

botoes.forEach(btn => btn.addEventListener('click', filtrarLivros))

function filtrarLivros() {
    const elementoBtn = document.getElementById(this.id)
    const categoria = elementoBtn.value

    const livrosFiltrados = livros.filter(livro => livro.categoria == categoria)
    exibirLivrosNaTela(livrosFiltrados)
}

Antes de criar o código e ser apresentado esse, eu escrevi como achava que poderia fazer e testei, logo depois, continuei o curso e vi que o meu codigo foi diferente, mas ao mesmo tempo parecido, mas menor.

const botoes = document.querySelectorAll('.btn')

botoes.forEach(btn => btn.addEventListener('click', () => {
     const livrosFiltrados = livros.filter(livro => livro.categoria == btn.value)
     exibirLivrosNaTela(livrosFiltrados)
}))

Deu o mesmo resultado, porém menor. Não sei se fica mais complexo, mas na minha cabeça foi o que pensei. Minha lógica foi nesse direção kkkkk

1 resposta
solução!

Oi Davyd, tudo bem?

Que bom que você conseguiu chegar em uma solução para o problema utilizando o método filter()! É sempre bom testar diferentes abordagens e ver qual se adequa melhor ao seu estilo de programação.

De fato, a sua solução é mais sucinta e utiliza uma função anônima para filtrar os livros de acordo com o valor do botão clicado. Isso mostra que existem várias maneiras de se chegar ao mesmo resultado e que não há uma única forma correta de se fazer as coisas.

O importante é entender o conceito por trás do método filter() e como ele pode ser utilizado para filtrar elementos de um array de acordo com uma determinada condição.

Um abraço e bons estudos.