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

[Concluído] Lógica para realização do sorteio

let amigos = []; 

function adicionar() {
    let amigo = document.getElementById('nome-amigo');
    let lista = document.getElementById('lista-amigos');
    amigos.push(amigo.value); 
    
    if (lista.textContent == '') {
        lista.textContent = amigo.value;
    } else {
        lista.textContent = lista.textContent + ', ' + amigo.value;
    }
amigo.value = ''; 
}

function sortear() {
    embaralha(amigos);
    let sorteio = document.getElementById('lista-sorteio');
    
    for(let i = 0; i < amigos.length; i++) {

        if(i == amigos.length - 1){
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[0] + '<br>' 

        }else{
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[i+1] + '<br>' 

        }

    }
}

//EMBARALHA OS NOMES - foi pego em um site do Cangaceiro JavaScript
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() {
    document.getElementById('lista-amigos').textContent = '';
    
}
1 resposta
solução!

Oi, Henrique! Tudo bem?

Ótima lógica para adicionar amigos e sortear! Deixo como sugestão apenas limpar a lista de sorteio quando reiniciarmos ou fizermos um novo sorteio. Além de usar a função reiniciar para limpar o array amigos, evitando problemas se tentarmos adicionar novos amigos após reiniciar, deixando o nosso código da seguinte maneira:

let amigos = []; 

function adicionar() {
    let amigo = document.getElementById('nome-amigo');
    let lista = document.getElementById('lista-amigos');
    amigos.push(amigo.value); 
    
    if (lista.textContent == '') {
        lista.textContent = amigo.value;
    } else {
        lista.textContent = lista.textContent + ', ' + amigo.value;
    }
    amigo.value = ''; 
}

function sortear() {
    embaralha(amigos);
    let sorteio = document.getElementById('lista-sorteio');
    sorteio.innerHTML = ''; // Limpa a lista de sorteio antes de adicionar novos resultados

    for(let i = 0; i < amigos.length; i++) {
        if(i == amigos.length - 1){
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[0] + '<br>'; 
        } else {
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[i+1] + '<br>'; 
        }
    }
}

// Embaralha os nomes
function embaralha(lista) {
    for (let indice = lista.length; indice; indice--) {
        const indiceAleatorio = Math.floor(Math.random() * indice);
        [lista[indice - 1], lista[indiceAleatorio]] = [lista[indiceAleatorio], lista[indice - 1]];
    }
}

function reiniciar() {
    document.getElementById('lista-amigos').textContent = '';
    document.getElementById('lista-sorteio').innerHTML = ''; // Limpa a lista de sorteio
    amigos = []; // Limpa o array de amigos
}

Espero ter ajudado!

Um forte abraço e bons estudos!