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

[Dúvida] Duvidas em Refatoração

Prezados Boa Noite Estou eu aqui no meus estudo e estou com duvida sobre boas praticas, no caso, refatoração.

Alguem pode me ajudar com codigo abaixo, realmente ele ta grande e com funções muito parecidas.

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


function comprarPista (qtd){
    if ((qtd < qtdPista) & (qtd > 0)) {
        qtdPista = qtdPista - qtd;
        document.getElementById('qtd-pista').textContent = qtdPista;          
        alert ("Parabens, compra realizada com sucesso.")}
    else if(qtd === 0){
        alert ("Digite a quantidade correta!")
    }
    else if(isNaN(qtd)){
        alert ("Digite a quantidade correta! Teste NAN!")
    }       
    else
    alert ("Não há esta quantidade suficiente a venda!");
    
}

function comprarSuperior (qtd){
    if ((qtd < qtdSuperior)& (qtd > 0)) {
        qtdSuperior = qtdSuperior - qtd;           
        document.getElementById('qtd-superior').textContent = qtdSuperior;
        alert ("Parabens, compra realizada com sucesso.")
    }
    else if(qtd === 0){
            alert ("Digite a quantidade correta!");
        }
    else if(isNaN(qtd)){
            alert ("Digite a quantidade correta! Teste NAN!");
        }     
    else 
    alert ("Não há esta quantidade suficiente a venda!");
}

function comprarInferior (qtd){
    if ((qtd < qtdInferior) & (qtd > 0)) {
        qtdInferior = qtdInferior - qtd;
        document.getElementById('qtd-inferior').textContent = qtdInferior;           
        alert ("Parabens, compra realizada com sucesso.")}
    else if(qtd === 0){
            alert ("Digite a quantidade correta!")
        }
    else if(isNaN(qtd)){
            alert ("Digite a quantidade correta! Teste NAN!")
        } 
    else 
    alert ("Não há esta quantidade suficiente a venda!");
2 respostas
solução!

Oi Haylon, tudo bem?

Um possível sugestão aqui seria ter uma úncia função comprar, que recebe um parâmetro que identifica o tipo de compra (inferior/superior/pista).

Espero ter ajudado ;)

entendi mano obrigado,

Eu queria acabar tambem com as 3 funcoes de compras, deixando só uma pros tres tipos de ingressos., acho que consigo com parametros tb.