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

resolvendo os desafios propostos nesse vídeo. amigo secreto.

let amigos = [];

function adicionar()
{
        let nomeAmigo = document.getElementById("nome-amigo");
        let lista = document.getElementById('lista-amigos');

// verifica se o campo está em branco
        if (nomeAmigo.value.trim() === "")
        {
         alert("Digite o Nome do Amigo!");
        }
        //verifica se o nome já foi incluído 
        else if(amigos.includes(nomeAmigo.value))
            {
                alert("Este nome já foi incluído")
            }
        else 
            {// inclui o nome dentro do array
            amigos.push(nomeAmigo.value);
             
            //só habilita o botão sortear depois que o array for maior que 3
            if (amigos.length > 3)
                {
                     document.getElementById('btn-sortear').disabled = false;
                }

        if (lista.textContent == '')
            {
            lista.textContent = nomeAmigo.value;
            }
        else 
            {//imprime o nome do amigo adicionado no campo amigos
            lista.textContent = lista.textContent + ', '+ nomeAmigo.value;
            }
            //deixa em branco o nome do amigo para digitar o proximo a ser incluído 
           nomeAmigo.value = '';
        }
}

function sortear()
{//inicia o campo de nomes sorteados em branco 
    document.getElementById('lista-esquerda').innerHTML = '';
    //chama a função para embaralhar o array
        embaralhar(amigos);

        let sorteio = document.getElementById('lista-esquerda')
// faça enquanto i for menor que o tamanho do array faça
    for (let i = 0; i < amigos.length; i++)
    {
        //se o i for igual o array -1
        if (i == amigos.length -1)
        {// o ultimo amigo irá se ligar ao primeiro amigo
            sorteio.innerHTML = sorteio.innerHTML + amigos[i]+`--->`+amigos[0]+ `<br>`;    
        }
        else
        {//senão o amigo 1 liga com o proximo e assim por diante
         sorteio.innerHTML = sorteio.innerHTML + amigos[i]+`--->`+amigos[i+1]+ `<br>`;
        }    
    }
}

//embaralha todas as posições dentro do array
function embaralhar(lista)
{
    for (let indice = lista.length; indice; indice--)
    {
        const indiceAleatorio = Math.floor(Math.random()* indice);

        //atribuição via destruturing
        [lista[indice -1], lista[indiceAleatorio]] =
            [lista[indiceAleatorio], lista[indice -1]];
    }
}
//reinicia todos os campos para recomeçar o jogo
function reiniciar()
{
    document.getElementById('lista-esquerda').innerHTML = '';
    amigos = [];
    document.getElementById("nome-amigo").value = "";
    document.getElementById('lista-amigos').innerHTML = '';
    document.getElementById('btn-sortear').disabled = true;

}
1 resposta
solução!

Olá, Eduardo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de arrays para armazenar os nomes, utilizou muito bem funções para organizar as diferentes etapas do sorteio e ainda compreendeu a importância da manipulação do DOM para atualizar dinamicamente as informações na tela.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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