Notei que não fui o único a ter esse problema e resolvi abrir este tópico para ajudar os demais a se resolverem.
Ao executar meu código, aconteceu exatamente o contrário do comportamento esperado: digitei uma data de nascimento de alguém com menos de 18 anos e o cadastro foi aprovado. Procurei no código inteiro algo que pudesse estar errado/diferente do que o professor fez e nada. Até que, nessa função, notei algo estranho:
function moreThan18(date) {
const currentDate = new Date();
const moreThan18Date = new Date(
date.getUTCFullYear() + 18,
date.getUTCMonth(),
date.getUTCDate()
);
return moreThan18Date <= currentDate;
}
Note que na hora de declarar o return
, não existe um parêntese isolando o conteúdo que será retornado. Então resolvi usá-los:
function moreThan18(date) {
const currentDate = new Date();
const moreThan18Date = new Date(
date.getUTCFullYear() + 18,
date.getUTCMonth(),
date.getUTCDate()
);
return (moreThan18Date <= currentDate); // dessa forma o conteúdo a ser retornado fica bem definido e legível
}
Imediatamente, ao testar o código, ele funcionou do jeito que eu esperava. Espero ter ajudado!