2
respostas

[Sugestão] Curso ficou incompleto...

Acompanhando os vídeos do curso percebi que o projeto ficou incompleto, pois as estatísticas são atualizadas de forma parcial. Pedro mostrou apenas como somar os dados estatísticos do objeto, mas não como subtrai-los em caso do usuário clicar no botão para diminuir a quantidade de peças.

Código final ficou assim.

function atualizaEstatisticas(peca, operador) {
    estatisticas.forEach( (elemento) => {
            elemento.textContent = parseInt(elemento.textContent) + pecas[peca][elemento.dataset.estatistica];
     })
}

Porém, pensei que isso seria um desafio para nós estudantes do curso, portanto eu fiz o meu próprio código e consegui fazer funcionar perfeitamente.

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

     })
}

Para isso, tive que alterar também a chamada da função 'atualizaEstatisticas', conforme abaixo.

atualizaEstatisticas(evento.target.dataset.peca, evento.target.dataset.controle);
2 respostas

Opa Thiago, tudo bem?

Que ótimo! Parabéns por desenvolver uma solução para esse problema e compartilhar aqui no fórum, dessa forma ira outros alunos que podem se deparar com essa mesma situação.

Se precisar de ajuda ou tiver alguma dúvida, estou à disposição, conte comigo!

Um bom dia e bons estudos

Boa tarde, tbm reparei isso, mas fiz diferente:

controle.forEach( (elemento) => {      //forEach interage com cada elemento do array obtido atraves do querySelectorAll
    elemento.addEventListener(`click`, (evento) => {
        manipulaDados(evento.target.dataset.controle, evento.target.parentNode); 
        
        if (elemento.textContent == "+") {
            atualizaEstatisticas(evento.target.dataset.peca);
        } else {
            atualizaEstatisticas2(evento.target.dataset.peca);
        }
        
    })
})
function atualizaEstatisticas (peca) {
    
    estatisticas.forEach((elemento) => {
        elemento.textContent = parseInt(elemento.textContent) + pecas[peca] [elemento.dataset.estatistica]
    })
}

function atualizaEstatisticas2 (peca) {
    
    estatisticas.forEach((elemento) => {
        elemento.textContent = parseInt(elemento.textContent) - pecas[peca] [elemento.dataset.estatistica]
    })
}