1
resposta

resolução: Ingressos

function comprar(){
    //verificar tipo e quantidade de ingresso
    let listaIngressos = document.getElementById('tipo-ingresso').value;
    let qtd = document.getElementById('qtd').value;

    //verificar quantidade de ingressos disponiveis
    let qntDisponivel = document.getElementById(`qtd-${listaIngressos}`).innerHTML;
    
    //monta variável de texto usando ternário aninhado
    let txt = listaIngressos == 'pista'? 'pista':listaIngressos == 'superior'? 'cadeira superior':'cadeira inferior';
    
    if(parseInt(qtd) > parseInt(qntDisponivel)){ //se quantidade de ingressos estiver indisponível
        alert(`Quantidade de ingressos indisponível para ${txt}!`);
        return;
    }else if(qtd == '' || parseInt(qtd)<=0){  //valores inválidos
        alert('Digite a quantidade válida de ingressos que você deseja comprar!');
        return;
    }else{ //confirmação de compra
        //reduzir disponibilidade
        document.getElementById(`qtd-${listaIngressos}`).innerHTML = qntDisponivel - qtd;
        alert(`Compra realizada com sucesso!\n${qtd} ingressos para ${txt}!`); 
    }
}
1 resposta

Oi, Luis! Como vai?

Gostei bastante de como você utilizou o ternário aninhado para definir o texto de acordo com o tipo de ingresso escolhido. Isso deixa o código mais enxuto e dinâmico para lidar com diferentes situações.

Uma dica interessante para o futuro é usar o método toUpperCase() ou toLowerCase() quando quiser padronizar textos e evitar erros de comparação. Veja este exemplo:


let nome = "Alura";
console.log(nome.toLowerCase()); // imprime "alura"

Esse código transforma todo o texto em letras minúsculas, o que pode ajudar em validações.

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