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

[Projeto] Projeto Ingresso - 2 etapa

segue o codigo


function comprar() {
    let seletor = document.getElementById("tipo-ingresso").value;
    let quantidade = parseInt(document.getElementById("qtd").value);
            console.log(seletor , quantidade);
            if (seletor === 'pista') {
                comprarPista(quantidade);
            } else {
                if (seletor === 'inferior') {
                    comprarInferior(quantidade);
                }else {
                    comprarSuperior(quantidade);
                }
            }
    }

function comprarPista(quantidade) {
    let qtdPista = parseInt(document.getElementById("qtd-pista").textContent);
    if (quantidade > qtdPista) {    
        alert('Quantidade indisponivel, para a Pista');
    } else {
        alert('compra realizada com Sucesso!');
        qtdPista = qtdPista - quantidade;
        document.getElementById("qtd-pista").textContent = qtdPista;
    }
}

function comprarInferior (quantidade) {
    let qtdCadeiraInf = parseInt(document.getElementById("qtd-inferior").textContent);
    if (quantidade > qtdCadeiraInf) {
        alert('Quantidade indisponivel, para a Cadeira Inferior');
    } else {
        alert('compra realizada com Sucesso!');
        qtdCadeiraInf = qtdCadeiraInf - quantidade;
        document.getElementById("qtd-inferior").textContent = qtdCadeiraInf;
    }
}

function comprarSuperior (quantidade) {
    let qtdCadeiraSup = parseInt(document.getElementById("qtd-superior").textContent);
    if (quantidade > qtdCadeiraSup) {
        alert('Quantidade indisponivel, para a Cadeira Superior');
    } else {
        alert('compra realizada com Sucesso!');
        qtdCadeiraSup = qtdCadeiraSup - quantidade;
        document.getElementById("qtd-superior").textContent = qtdCadeiraSup;
    }

    
}
1 resposta
solução!

Bom dia, Rony!

Seu código está bem estruturado, mas dá para melhorar a legibilidade e evitar repetições. O problema aqui é que a lógica pode ser simplificada e organizada melhor. Veja este exemplo:

function comprar() {
    let seletor = document.getElementById("tipo-ingresso").value;
    let quantidade = parseInt(document.getElementById("qtd").value);
    
    let setores = {
        'pista': "qtd-pista",
        'inferior': "qtd-inferior",
        'superior': "qtd-superior"
    };

    if (setores[seletor]) {
        comprarIngresso(setores[seletor], quantidade, seletor);
    } else {
        alert('Tipo de ingresso inválido.');
    }
}

function comprarIngresso(idSetor, quantidade, nomeSetor) {
    let qtdDisponivel = parseInt(document.getElementById(idSetor).textContent);

    if (quantidade > qtdDisponivel) {
        alert(`Quantidade indisponível para ${nomeSetor}`);
    } else {
        alert('Compra realizada com sucesso!');
        document.getElementById(idSetor).textContent = qtdDisponivel - quantidade;
    }
}

O que foi melhorado?

  • Menos repetição: Agora há uma função única para compra, reduzindo código duplicado.
  • Mais organização: Usei um objeto para mapear os setores, tornando o código mais flexível.
  • Melhor legibilidade: O código ficou mais enxuto e fácil de entender.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.