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

[Projeto] Vou colocar o meu projeto, usei as aulas pra destravar alguns pontos que eu não tava conseguindo.

Sinceramente tive bastante dificuldades em todos os desafios em como começar, já nesse sentir que estava indo na logica, mas errando nos detalhes de como escrever o codigo de maneira funcional.

let nomeDigitado = document.getElementById("nome-amigo");
let listaDeAmigos = document.getElementById("lista-amigos");
let todosAmigos = []
console(todos)

function adicionar(){
    todosAmigos.push(nomeDigitado.value)
    if(listaDeAmigos.textContent == "") {
    listaDeAmigos.textContent = nomeDigitado.value } else{
    listaDeAmigos.textContent = listaDeAmigos.textContent + ", " + nomeDigitado.value 
    }
    nomeDigitado.value = ""
}

function sortear(){
    embaralha(todosAmigos)
    let sorteio = document.getElementById("lista-sorteio");
    for (let i = 0; i < todosAmigos.length; i++) {
        if(i == todosAmigos.length - 1){
        sorteio.innerHTML = sorteio.innerHTML + todosAmigos[i] + " --> " + todosAmigos[0] + '<br/>'
        } else{
        sorteio.innerHTML = sorteio.innerHTML + todosAmigos[i] + " --> " + todosAmigos[i + 1] + '<br/>'}
    }
    }

 function embaralha(lista) {

   for (let indice = lista.length; indice; indice--) {
    
       const indiceAleatorio = Math.floor(Math.random() * indice);
    
       // atribuição via destructuring
         [lista[indice - 1], lista[indiceAleatorio]] = 
         [lista[indiceAleatorio], lista[indice - 1]];
        }
    }

    function reiniciar(){
        todosAmigos.textContent = ""
        listaDeAmigos.textContent = ""
        document.getElementById("lista-sorteio").innerHTML = ""
    }
1 resposta
solução!

Olá Marllon, tudo bem?

Pelo que vejo, você está indo bem! A lógica do seu código está correta, mas você mencionou que está tendo problemas com os detalhes. Vamos tentar resolver isso juntos.

Primeiro, notei um pequeno erro no seu código. Você tentou usar console(todos), mas acredito que você queria usar console.log(todosAmigos). Essa pequena alteração deve ajudar a ver o que está acontecendo no seu array todosAmigos.

Em relação à função reiniciar(), parece que você está tentando limpar o conteúdo de todosAmigos e listaDeAmigos, mas você usou textContent em vez de innerHTML. O textContent não considera as tags HTML, então, se você tiver algum elemento HTML em todosAmigos ou listaDeAmigos, ele não será limpo. Tente usar innerHTML em vez disso, assim como foi feito na aula:

function reiniciar(){
    todosAmigos = []
    listaDeAmigos.innerHTML = ""
    document.getElementById("lista-sorteio").innerHTML = ""
}

Essa alteração deve ajudar a limpar todo o conteúdo de todosAmigos, listaDeAmigos e lista-sorteio.

Caso tenha dúvidas, fico à disposição.

Espero ter ajudado e bons estudos!