Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Ingresso online

Praticando logica com desafios

Tentei resolver o desafio antes de ver as aulas, então acabou que meus códigos seguiram uma linha diferente da resolução dos instrutores.

Se fizeram uma linha diferente da minha e dos instrutores e puderem mandar para melhorar a aprendizagem seria uma boa!

*Obs: Enviei meu código para o chatGPT e pedi pra ele fazer uma explicação. Coloquei a explicação logo abaixo do código! *

Abraços...

let listaIngresso = {
    pista: 100,
    superior: 200,
    inferior: 400,
};
let qtd;

function comprar() {
    qtd = document.getElementById('qtd').value;
    calcula(document.getElementById('tipo-ingresso').value);
}
function calcula(tipoEscolhido) {
    if (qtd > listaIngresso[tipoEscolhido]) {
        alert(`Somente ${listaIngresso[tipoEscolhido]} igressos do tipo ${tipoEscolhido} disponiveis.`);

    } else {
        listaIngresso[tipoEscolhido] = listaIngresso[tipoEscolhido] - qtd;

        if (listaIngresso[tipoEscolhido] <= 0) {
            document.getElementById(`qtd-${tipoEscolhido}`).textContent = `ESGOTADO`;
        } else {
            document.getElementById(`qtd-${tipoEscolhido}`).textContent = `${listaIngresso[tipoEscolhido]}`;
        }
    }
}
  1. listaIngresso é um objeto que armazena a quantidade disponível de ingressos para cada tipo de ingresso (pista, superior, inferior).
  2. A função comprar() é chamada quando o usuário clica em um botão para comprar ingressos. Ele obtém a quantidade desejada de ingressos do elemento HTML com o id qtd e, em seguida, chama a função calcula() passando o tipo de ingresso selecionado pelo usuário como argumento.
  3. A função calcula(tipoEscolhido) verifica se a quantidade desejada de ingressos (qtd) é maior do que a quantidade disponível para o tipo de ingresso escolhido. Se for maior, exibe um alerta informando que apenas a quantidade disponível de ingressos está disponível.
  4. Se a quantidade desejada de ingressos for igual ou menor do que a quantidade disponível, a quantidade disponível é atualizada e exibida no elemento HTML correspondente. Se a quantidade disponível for menor ou igual a zero, exibe "ESGOTADO".
1 resposta
solução!

Olá, Guilherme! Tudo bem?

Muito legal que você esteja praticando e tentando resolver os desafios antes de ver as soluções propostas pelos instrutores. Isso é uma ótima maneira de aprender e se desenvolver como programador.

Sobre o seu código, ele está bem estruturado e fácil de entender. A lógica que você usou para resolver o desafio é muito boa. No entanto, observei que você está usando a quantidade de ingressos como valor para cada tipo de ingresso no objeto listaIngresso. Isso poderia causar confusão, pois o valor poderia ser interpretado como o preço do ingresso, por exemplo.

Uma sugestão seria criar um objeto para cada tipo de ingresso, onde cada objeto teria propriedades para a quantidade e o preço. Algo assim:

let listaIngresso = {
    pista: { quantidade: 100, preco: 50 },
    superior: { quantidade: 200, preco: 100 },
    inferior: { quantidade: 400, preco: 150 },
};

Dessa forma, a quantidade e o preço de cada tipo de ingresso ficariam mais claros. E você poderia adaptar a função calcular() para lidar com esse novo formato de dados.

Bons estudos!