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

[Sugestão] Resolvendo a validação de Nomes

Eu fiz primeiro com toLowerCase e fazer o push tbm com tudo minusculo ou maiusculo fica estranho quando vai os nomes, para apenas comparar e validar eu encontrei um metodo assim.

let listaDeAmigos = [];
function adicionar(){
    let nomeDoAmigoInput = document.getElementById("nome-amigo");
    let nomeDoAmigo = nomeDoAmigoInput.value.trim(); // Armazena o nome original e sem espaços
    if (nomeDoAmigo === "") { // Verifica se o input está vazio 
        alert("Por favor, digite um nome.");
        return; // Sai da função sem adicionar o nome
    }
    // Converte o nome para minúsculo APENAS para a comparação
    if (listaDeAmigos.some(amigo => amigo.toLowerCase() === nomeDoAmigo.toLowerCase())) {
        alert("Nome ja adicionado");
        return;
    }
    listaDeAmigos.push(nomeDoAmigo); // Adiciona o nome ORIGINAL à lista

    nomeDoAmigoInput.value = '';
    atualizarLista();
    atualizarSorteio();
}

dessa forma não fica alterado o nome dentro da lista. https://github.com/wallace-pv/logica-de-prog-desafios/blob/main/amigo-secreto/js/app.js

1 resposta
solução!

Olá, Wallace, como vai?

Muito bacana ver sua contribuição e a forma como pensou na validação sem alterar os nomes originais! O código que você compartilhou está correto e bem estruturado. Usar o toLowerCase() apenas na comparação foi uma excelente ideia, pois garante que os nomes na lista permaneçam como foram inseridos, enquanto evita duplicatas causadas por diferenças de capitalização.

É sempre bom ver pessoas compartilhando soluções e ideias no fórum. Continue assim, pois é uma maneira incrível de aprender e ajudar outros alunos!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)