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

[Sugestão] Complementando o código

Boa noite,

Não sei se mais gente passou pela mesma situação, ou se vai passar, mas na aula não foi ajustado para que as estatísticas mudem quando diminuir uma peça. Mesmo tirando uma, os números subiam.

A função atualizaEstatisticas ficou assim, pois tive que adicionar mais um parâmetro para pegar se estava somando, ou subtraindo:

function atualizaEstatisticas(controle, peca) {
    estatisticas.forEach((estatistica) => {
        if(controle === '+') {
            estatistica.textContent = parseInt(estatistica.textContent) + pecas[peca][estatistica.dataset.estatistica];
        } else {
            estatistica.textContent = parseInt(estatistica.textContent) - pecas[peca][estatistica.dataset.estatistica];
        }
    })
}

E como a gente já tinha usado esse controle no manipulaDados bastou eu utilizar novamente no atualizaEstatisticas, ficando assim:

controles.forEach((controle) => {
    controle.addEventListener('click', (event) => {
        manipulaDados(event.target.dataset.controle, event.target.parentNode);
        atualizaEstatisticas(event.target.dataset.controle, event.target.dataset.peca);
    });
})

Espero que possa ajudar mais gente (:

1 resposta
solução!

Olá, Caio!

Obrigado por compartilhar seu código com a comunidade, analisando sua lógica você utilizou o mesmo controle no evento de clique dos elementos controles, chamando a função atualizaEstatisticas com os parâmetros corretos. Isso faz com que as estatísticas sejam atualizadas corretamente conforme a peça selecionada, parabéns!

Sua solução está ótima! Parabéns por encontrar uma maneira de desenvolver mais ainda o projeto. Tenho certeza de que sua contribuição será útil para outras pessoas que também estão estudando o JavaScript, e queiram ajustar isso no seu código, muito bem!

Obrigado! E 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!