Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resolução do desafio dos ingressos.

function comprar()
{//captura os valores dos campos
    let quantidade = parseInt(document.getElementById("qtd").value);
    let tipoIngresso = document.getElementById("tipo-ingresso").value;
    let ingressoDisponivel = parseInt(document.getElementById(`qtd-${tipoIngresso}`).textContent);
    let ingresso = document.getElementById(`qtd-${tipoIngresso}`);
//varifica se a quantidade foi preenchida
    if (quantidade <= 0 || isNaN(quantidade))
    {
        alert("Informe a quantidade de ingresssos");
        return;
    }//verifica se tem a quantidade de ingressos suficiente
    if (ingressoDisponivel >= quantidade)
        {
            ingressoDisponivel = ingressoDisponivel - quantidade;
            //atualiza a informação na tela da quantidade de ingressos disponíveis
            ingresso.textContent = ingressoDisponivel
            
        }
        else
        {
            alert("Quantidade de ingressos insuficiente");
        }
limparcampos();
}
//limpa os campos para reiniciar uma proxima compra
function limparcampos()
{
    document.getElementById("qtd").value = "";
    document.getElementById("tipo-ingresso").value = "";
}
2 respostas
solução!

Oi, Eduardo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de como você organizou a função comprar() em etapas claras: captura dos valores, validação com isNaN(quantidade), comparação do estoque e atualização do textContent. Pontos importantes: você já usou parseInt corretamente e manteve o fluxo bem objetivo com return quando a quantidade é inválida.

Uma dica interessante para o futuro é usar funções pequenas para reaproveitar a lógica e deixar o código mais fácil de manter, por exemplo separando a atualização do estoque. Veja este exemplo:


function atualizaEstoque(tipo, quantidade) {
  const campo = document.getElementById(`qtd-${tipo}`);
  const disponivel = parseInt(campo.textContent);

  if (disponivel >= quantidade) {
    campo.textContent = disponivel - quantidade;
    return true;
  }
  return false;
}

const ok = atualizaEstoque('pista', 2);
console.log(ok);

Esse código cria uma função que atualiza o estoque do tipo informado e retorna true quando a compra pode acontecer, ou false quando não há ingressos suficientes.

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

muito legal eu imaginei que teria uma solução para reaproveitar o código, mas não sabia ainda, irei praticar essa que vc me indicou, obrigado!