1
resposta

[Sugestão] Compartilho uma sugestão integrando as três funções:

function comprar(event) { event.preventDefault(); let tipo = document.getElementById("tipo-ingresso").value; let qtd = parseInt(document.getElementById("qtd").value); comprarIngresso(tipo, qtd); }

  function comprarIngresso (tipo, qtd) {
        let qtdDisponivel = 0;
        let qtdElemento = null;

        switch (tipo) {
            case "pista":
                qtdElemento = document.getElementById("qtd-pista");
                qtdDisponivel = parseInt(qtdElemento.textContent);
                break;
            case "superior":
                qtdElemento = document.getElementById("qtd-superior");
                qtdDisponivel = parseInt(qtdElemento.textContent);
                break;
            case "inferior":
                qtdElemento = document.getElementById("qtd-inferior");
                qtdDisponivel = parseInt(qtdElemento.textContent);
                break;
            default:
                break;
        }

        if (qtd > qtdDisponivel) {
            alert("Quantidade indisponível para este tipo de ingresso");
        } else 
        if (qtd <= 0 || isNaN(qtd)) { 
        alert("Digite uma quantidade válida maior que zero!");
        } else {
            qtdDisponivel -= qtd; 
            qtdElemento.textContent = qtdDisponivel; 
            document.getElementById("qtd").value = "";
            alert("Compra realizada com sucesso!");
        }
    }
1 resposta

Olá, Telmo! Como vai?

Ficou muito boa a sua solução! Você está aplicando um conceito muito importante em programação chamado refatoração, que é a reestruturação de um código existente para melhorar a sua legibilidade e eficiência, sem alterar o seu comportamento externo.

No código que você compartilhou, você utiliza a estrutura switch para determinar o tipo de ingresso e, em seguida, executa a lógica de compra. Isso é uma ótima maneira de evitar a repetição de código e tornar o seu código mais limpo e fácil de entender.

Parabéns e bons estudos!