1
resposta

resolução do desafio

experimentei dessa forma, depois de apanhar um tanto com atualização do bendito carrinho kkkkk

var totalCarrinho = 0;

function adicionar() {
let select = document.getElementById('produto');
let inputQtd = document.getElementById('quantidade');
let lista = document.getElementById('lista-produtos');
let totalSpan = document.getElementById('valor-total');

let produtoSelecionado = select.value; // ex: "Celular - R$1400"
let partes = produtoSelecionado.split(' - R$');
let nome = partes[0];
let preco = parseFloat(partes[1]);
let quantidade = parseInt(inputQtd.value);

if (!quantidade || quantidade <= 0) {
    alert("Digite uma quantidade válida!");
    return;
}

// Cria o elemento para o novo produto no carrinho
let novoProduto = document.createElement('section');
novoProduto.className = 'carrinho__produtos__produto';
novoProduto.innerHTML = `<span class="texto-azul">${quantidade}x</span> ${nome} <span class="texto-azul">R$${preco * quantidade}</span>`;
lista.appendChild(novoProduto);

// Atualiza o total do carrinho
totalCarrinho += preco * quantidade;
totalSpan.textContent = `R$${totalCarrinho}`;

// Limpa o campo de quantidade após adicionar
inputQtd.value = '';

}

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

1 resposta

Oi, Rafael! Como vai?

comoSeu cuidado em lidar com a atualização do carrinho ficou bem estruturado, e a forma como você dividiu e tratou os dados do produto mostra um bom entendimento da lógica de programação aplicada no projeto.

Uma dica interessante para o futuro é usar toFixed(2) para garantir que os valores monetários sempre apareçam com duas casas decimais. Veja este exemplo:


let precoTotal = 25 * 3;
console.log("R$" + precoTotal.toFixed(2));

Esse código exibe o valor final formatado com dois dígitos após a vírgula, como R$75.00.

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