2
respostas

Alternativa para verificar se o nome já está incluso

Criei essa funçao que verifica se o nome já inclui na lista e ainda uso o metodo toLowerCase, para nao ter a possibilidade de adicionar uma "ana" e outra "Ana"

// Função para verificar se o nome já existe na lista

function nomeJaExiste(nome) {
    const nomesMinusculos = listaSorteio.map(nome => nome.toLowerCase()); 
    // em cada elemento nome dentro da[listaSorteio], será aplicado o método toLowerCase,
    return nomesMinusculos.includes(nome.toLowerCase()); 
    // verifica se o valor de nomesMinusculos é = a nome.toLowerCase(nome que acabei de inserir) se for verdadeiro retorna true
}

E dentro da funçao adicionar(), eu inclui este trecho:

if (nomeJaExiste(` ${nome.value.toLowerCase()}`)) {
        // se a funçao passada na condição for true, executa o alert abaixo
        alert("Este nome já está na lista. Insira outro nome.");
    }
2 respostas

A única sugestão que eu tenho é de considerar uma mensagem de alerta mais informativa. Em vez de apenas dizer "Este nome já está na lista. Insira outro nome.", você pode especificar qual nome já está na lista. Por exemplo:

if (nomeJaExiste(nome.value.toLowerCase())) { const nomeExistente = listaSorteio.find(nomeLista => nomeLista.toLowerCase() === nome.value.toLowerCase()); alert(O nome "${nomeExistente}" já está na lista. Insira outro nome.); } Essa modificação identifica qual nome já está presente na lista, fornecendo uma mensagem mais útil para o usuário.

ótima dica Erick! muito obrigado, realmente fica mais informativo!