Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] desafio amigo secreto - 3 etapa

Segue o codigo, inclui a limpeza do campo apos incluir um nome.

segue o codigo

    
    let grupoAmigos = [];


function adicionar() {
    let nomeAmigo = document.getElementById('nome-amigo').value.trim();
    let listaAmigos = document.getElementById('lista-amigos');
    let nomeAmigoUpper = nomeAmigo.toUpperCase();
        if (nomeAmigo === '') {
            alert('Favor inserir o nome no campo');
            return;
        } 
        if (grupoAmigos.includes(nomeAmigoUpper)) {
            alert("Amigo ja incluido, informe outro nome ou adicione um sobrenome");                
         return;
        }

        grupoAmigos.push(nomeAmigoUpper);
        console.log(grupoAmigos);

        if (listaAmigos.textContent == '') {
                listaAmigos.textContent = nomeAmigo;
        } else {
                listaAmigos.textContent = listaAmigos.textContent + ', ' + nomeAmigo;
            }
            document.getElementById('nome-amigo').value = '';
        }
     

function sortear() {

    embaralhar(grupoAmigos);
    let listaSorteio = document.getElementById('lista-sorteio');
    listaSorteio.innerHTML = '';

    for (let i = 0; i < grupoAmigos.length; i++) {
        let amigo1 = grupoAmigos[i];
        let amigo2 = (i === grupoAmigos.length - 1) ? grupoAmigos[0] : grupoAmigos[i + 1];
        listaSorteio.innerHTML += `${amigo1} → ${amigo2} <br>`;
    }
}

function embaralhar(lista) {
    for (let indice = lista.length; indice; indice--) {
        let indiceAleatorio = Math.floor(Math.random() * indice);

        [lista[indice - 1], lista[indiceAleatorio]] = [lista[indiceAleatorio], lista[indice - 1]];
    }
}

function reiniciar() {


}
2 respostas
solução!

Olá, Rony. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você garantiu que os nomes fossem armazenados em caixa alta para evitar duplicatas com diferentes capitalizações. Além disso, a lógica de sorteio está bem estruturada.

Uma sugestão interessante seria usar template literals para simplificar a concatenação de nomes na lista. Veja este exemplo:

 listaAmigos.textContent = listaAmigos.textContent  
    ? `${listaAmigos.textContent}, ${nomeAmigo}`  
    : nomeAmigo; 

Isso torna o código mais legível e evita repetições desnecessárias.

  Alura   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

acho que confundiu o post!