1
resposta

Minha solução

Como de costume, eu tento implementar a solução do meu jeito sem assistir o vídeo. Como eu não sabia que o instrutor iria alterar de const para let, eu fiz dessa forma:


const listaDeTarefas = JSON.parse(localStorage.getItem('tarefas')) || [];
...
function limparTarefasConcluidas() {
    const tarefasRemovidas = listaDeTarefas.filter((tarefa) => !tarefa.completa)  //filtra o array de tarefas para somente conter as tarefas nao concluidas
    listaDeTarefas.splice(0, listaDeTarefas.length, ...tarefasRemovidas); //substitui o conteúdo da lista de tarefas

    return listaDeTarefas;
}

function renderizaLista() { //talvez essa nao seja a forma mais correta de fazer, mas aqui eu limpo a lista e reconstruo com as tarefas que sobraram
    ulTarefas.innerHTML = '';
    listaDeTarefas.forEach((tarefa) => {
        ulTarefas.append(criarElementoListaDeTarefas(tarefa));
    })


btnApagarTarefasConcluidas.addEventListener('click', () => {
    limparTarefasConcluidas();
    atualizarTarefas();
    renderizaLista();
});

Assim eu nao alterei a declaração da variável e consegui ter o resultado esperado.
então o fluxo ficou
1- função que limpa as tarefas
2- atualiza a localStorage
3- Atualiza o dom

1 resposta

Olá, Bruno! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de arrays para armazenar tarefas, utilizou muito bem o método filter para selecionar apenas as tarefas não concluídas e ainda compreendeu a importância de reconstruir a lista para manter a interface atualizada.

Uma dica interessante para o futuro é simplificar a lógica de remoção usando apenas o filter e atribuindo diretamente o resultado à lista. Assim:

function limparTarefasConcluidas() {
    listaDeTarefas = listaDeTarefas.filter((tarefa) => !tarefa.completa);
    return listaDeTarefas;
}

Isso faz com que o código fique mais legível e direto, sem necessidade de usar splice.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!