Adorei a solução do professor na aula 3 em que ele mostra como usar o método .filter() para rapidamente filtrar um array dado e receber o array filtrado como resultado. Daí tive a curiosidade de ver o quão mais trabalhoso seria fazer a mesma filtragem (só que usando um switch) e agora vou compartilhar aqui.
Switch:
const listaBotoes = document.querySelectorAll('.btn');
listaBotoes.forEach(btn => btn.addEventListener('click', filtrarLivros ));
function filtrarLivros() {
const categoria = this.value;
const livrosFiltrados = [];
livros.forEach(livro => {
switch (categoria) {
case "front-end":
case "back-end":
case "dados":
if (livro.categoria === categoria) {
livrosFiltrados.push(livro);
}
break;
}
});
const livrosComDesconto = aplicarDesconto(livrosFiltrados);
exibirOsLivrosNaTela(livrosComDesconto);
}
Usando .filter() ---> método passado pelo professor
const listaBotoes = document.querySelectorAll('.btn');
listaBotoes.forEach(btn => btn.addEventListener('click', filtrarLivros ));
function filtrarLivros() {
const categoria = this.value;
let livrosFiltrados = livros.filter(livro => livro.categoria == categoria);
const livrosComDesconto = aplicarDesconto(livrosFiltrados);
exibirOsLivrosNaTela(livrosComDesconto);
}
Bem mais otimizado, né.