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

Desafio 1

let totalGeral;
limpar();

function adicionar(){
    if(verificarCamposPreenchidos()){
        //recuperar valores nome do produto, quantidade e valor
        let produto = document.getElementById('produto').value;
        let nomeProduto = produto.split('-')[0];
        let valorUnitario = produto.split('R$')[1];
        let quantidade = document.getElementById('quantidade').value;

        //calcular o preço, o nosso subtotal
        let preco = quantidade * valorUnitario;

        //adicionar o produto no carrinho
        let carrinho = document.getElementById('lista-produtos');
        carrinho.innerHTML += `<section class="carrinho__produtos__produto">
        <span class="texto-azul">${quantidade}X</span> ${nomeProduto} <span class="texto-azul">R$${preco}</span>
        </section>`

        //atualizar o valor total
        totalGeral += preco;
        let campoTotal = document.getElementById('valor-total');
        campoTotal.textContent = `R$ ${totalGeral}`;
        document.getElementById('quantidade').value = '';
    }
    else{
        alert('Campo(s) "Produto" e/ou "Qtde." não preenchidos!')
    }
}

function limpar(){
    totalGeral = 0;
    document.getElementById('lista-produtos').innerHTML = '';
    document.getElementById('valor-total').textContent = 'R$ 0';
    document.getElementById('produto').value = '';
    document.getElementById('quantidade').value = '';
}

function verificarCamposPreenchidos(){
    let campoProduto = document.getElementById('produto').value;
    let campoQuantidade = document.getElementById('quantidade').value;

    if(campoProduto && campoQuantidade){
        return true;
    }
    return false;

}

Eu fiz um método "verificarCamposPreenchidos" e usei ele dentro do método "adicionar". Funcionou aqui. Tudo bem ser assim?

1 resposta
solução!

Oi, Luidi! Tudo bem?

Que bom que você está praticando e implementando suas próprias soluções! Sobre a sua dúvida, sim, está tudo bem em usar o método verificarCamposPreenchidos dentro do método adicionar, essa é até uma prática comum e recomendada em programação: dividir o código em funções menores e específicas para tornar o código mais organizado e fácil de entender.

Um detalhe importante que podemos adicionar também é garantir que o valor unitário do produto seja convertido corretamente de string para número antes da multiplicação, para evitar erros de cálculo, o que podemos fazer usando o parseFloat, como no exemplo:

let valorUnitario = parseFloat(produto.split('R$')[1]);

Isso deve ajudar a garantir que o cálculo do preço seja feito corretamente!

Espero ter ajudado!

Um forte abraço e bons estudos!