1
resposta

Resolução da compra de ingresso

segue minha logica. E uma pergunta. sempre que pesso o gpt alguma ajuda ele adiciona este 10 nas variáveis numéricas. isto é mesmo necessário?

//criando a funçao comprar
function comprar() {
    //criando as variaveis que vao receber os valores digitados e os valores ja presentes no site
    let tipoIngreso = document.getElementById('tipo-ingresso').value;
    let quantidade = parseInt(document.getElementById('qtd').value, 10);

    let cadeiraInferior = document.getElementById('qtd-inferior');
    let cadeiraSuperior = document.getElementById('qtd-superior');
    let pista = document.getElementById('qtd-pista');

    let qtdInferior = parseInt(cadeiraInferior.textContent, 10);
    let qtdSuperior = parseInt(cadeiraSuperior.textContent, 10);
    let qtdPista = parseInt(pista.textContent, 10);


    //garantindo que so podera comprar ate 10 ingressos por vez
    if (quantidade <= 0 ||quantidade > 10) {
        alert("Desculpe. Você não pode comprar esta quantidade");

      //comparando e subitraindo os ingressos comprados
    } else if (tipoIngreso == 'inferior' && qtdInferior >= quantidade) {
        qtdInferior = qtdInferior - quantidade;
        cadeiraInferior.innerHTML = `<span id="qtd-pista">${qtdInferior}</span>` ;
        alert('Obrigado por comrar com a e-Ticket');
    } else if (tipoIngreso == 'superior' && qtdSuperior >= quantidade) {
        qtdSuperior = qtdSuperior - quantidade;
        cadeiraSuperior.innerHTML = `<span id="qtd-pista">${qtdSuperior}</span>` ;
        alert('Obrigado por comrar com a e-Ticket');
    } else if (tipoIngreso == 'pista' && qtdPista >= quantidade) {
        qtdPista = qtdPista - quantidade;
        pista.innerHTML = `<span id="qtd-pista">${qtdPista}</span>` ;
        alert('Obrigado por comrar com a e-Ticket');
    }



    //testando as variaveis criadas
    // console.log(tipoIngreso);
    // console.log(quantidade);
    // console.log(qtdPista, qtdSuperior, qtdInferior);
}
1 resposta

Oii Tairone,

Parabéns pela sua implementação. Achei excelente a sua iniciativa de criar uma regra de negócio extra (if (quantidade <= 0 || quantidade > 10)), impedindo que o usuário compre quantidades negativas ou exageradas. Isso demonstra uma visão de segurança e usabilidade muito importante.

Sobre o número 10 no parseInt

Quando usamos parseInt(valor, 10), esse número 10 serve para indicar a "base numérica" que estamos usando. O 10 representa o sistema decimal (números de 0 a 9), que é o padrão que usamos no dia a dia.

  • É obrigatório? Nos navegadores modernos, não. Se você não colocar o 10, o navegador já entende automaticamente que é decimal.
  • Por que as IAs sugerem? Antigamente, em navegadores muito velhos, se um número começasse com "0" (ex: "015"), o parseInt poderia achar que era base octal (base 8) e dar um resultado errado. O "10" serve para garantir que isso não aconteça. Mas para o seu projeto atual, pode usar apenas parseInt(valor) tranquilamente.
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!