1
resposta

Minha resolução

function comprar(){
    let tipoDeIngresso = document.getElementById('tipo-ingresso').value;

    let quantidade = parseInt(document.getElementById('qtd').value);

    if(isNaN(quantidade) || quantidade <= 0){
        alert('Quantidade indisponivel para compra, por favor, selecione um numero valido');
        return;
    }

    if(tipoDeIngresso === 'pista'){
        comprarTipoDeIngresso('pista', quantidade);

    } else if(tipoDeIngresso === 'superior'){
        comprarTipoDeIngresso('superior', quantidade)
    
    } else {
        comprarTipoDeIngresso('inferior', quantidade);
    }
}

function comprarTipoDeIngresso(tipo, qtdeSolicitada){
    let assento = document.getElementById(`qtd-${tipo}`);
    let ingressosDisponiveis = parseInt(assento.textContent);

    if(qtdeSolicitada > ingressosDisponiveis){
        alert('Quantidade indisponivel para compra, por favor, selecione um numero valido');
        return;

    } else {
        ingressosDisponiveis -= qtdeSolicitada;
        assento.textContent = ingressosDisponiveis;
        alert('Compra feita com sucesso');
    }
}
1 resposta

Olá, Beatriz! Como vai?

Primeiramente, seja bem-vinda à Alura! 💙

E parabéns por explorar o nosso fórum, isso contribui demais para o seu aprendizado.

Agora, avaliando a sua atividade: observei que você explorou o getElementById para capturar elementos com JavaScript, utilizou muito bem o parseInt para converter valores numéricos e ainda compreendeu a importância do if/else para validar condições de compra. Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar o Number.isInteger para garantir que a quantidade seja realmente um número inteiro. Assim:

let quantidade = Number(document.getElementById('qtd').value);

if (!Number.isInteger(quantidade) || quantidade <= 0) {
    alert('Quantidade indisponível para compra, por favor, selecione um número válido');
    return;
}

Isso faz com que o programa valide de forma mais precisa se o valor digitado é um número inteiro antes de prosseguir.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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