Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Erro NaN

Ola. Estou com o erro Nan na hora de subtrair o ingresso comprado, o que pode ser?

function comprar() {
    let ingresso = document.getElementById('tipo-ingresso').value ;
    let qtd = parseInt(document.getElementById('qtd').value);
    
    if(ingresso == 'pista'){
        comprarPista(qtd);

    }


    

}

function comprarPista(){
let qtdPista = parseInt(document.getElementById('qtd-pista').textContent);
if(qtd > qtdPista){
    alert('Quantidade indisponivel para o tipo pista');
} else {
    qtdPista = qtdPista - qtd;
    document.getElementById('qtd-pista').textContent = qtdPista;
    alert('Compra realizada');
}

}
2 respostas
solução!

Boa noite Gabriela! Tudo bem? Não sei exatamente o contexto do seu curso, porém notei alguns problemas no seu código que talvez estejam causando esse comportamento. Na sua função comprar, vc declara uma variável chamada qtd e chama ainda o método comprarPista. Porém você está passando a variável qtd para o método comprarPista e se notarmos na declaração da função comprarPista, você não está recebendo nenhuma variável como parâmetro dessa função:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Na função comprarPista, você está usando uma variável qtd que não foi definida (provavelmente está causando um erro de Referência no console). E aí nesse caso o seu if está sendo: undefined > qtdPista. Seu código irá cair no else e aí a subtração ocorrerá. Que nesse caso será qtdPista = qtdPista - undefined, resultando no seu NaN. Podemos comprovar isso através desse pequeno teste:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Acredito que seja esse o problema, se tiver alguma dúvida ou não funcionar, é só responder aqui. Abraços!

A variavel qtd foi declarada na função "comprar". Realmente eu esqueci de colocar a variavel qtd na função, foi isso que deu errado, agora deu certo. Muito Obrigada!