Estudando melhor o exercício por achar estranha a quantidade de funções, cheguei à conclusão que era possível concatenar o tipo de ingresso através do ID, já que no HTML, por sorte, são iguais os resultados do ".value" do tipo de ingresso e o ID que acompanha o "qtd-" de cada tipo.
Na prática, deu certo, e fiz algumas verificações adicionais. Existe algum erro no código? Inclusive gostaria de saber se tem alguma diferença do Number para ParseInt.
function comprar(){
let quantidade = Number(document.getElementById('qtd').value);
let tipoDeIngresso = document.getElementById('tipo-ingresso').value;
let ingressosRestantes = Number(document.getElementById(`qtd-${tipoDeIngresso}`).textContent);
if (quantidade >= 1) {
if (quantidade > ingressosRestantes){
alert('Não é possível comprar mais ingressos deste tipo, eles estão esgotados!');
document.getElementById('qtd').value = '';
return;
}
document.getElementById(`qtd-${tipoDeIngresso}`).textContent = document.getElementById(`qtd-${tipoDeIngresso}`).textContent - quantidade;
} else {
alert('A quantidade não é válida.');
return;
}
document.getElementById('qtd').value = '';
}