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

[Sugestão] Filter Vs Switch

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é.

1 resposta
solução!

Olá, Anael!

Realmente, a solução utilizando o método .filter() é mais otimizada e elegante rsrs. O switch com certeza é útil em algumas situações, mas quando se trata de filtrar um array com base em uma condição específica, o .filter() é uma ótima opção.

Mas que bacana compartilhar essa sua curiosidade e por elaborar outro caminho a fim de visualizar como seria, mas a buscar outro meio para se obter o mesmo resultado, muito bem!

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!