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

[Dúvida] Não sorteia

Meu código não sorteia

eu apenas copiei a função do array aleatório, e cheguei a copiar a parte do for toda também e não funcionou Porém não encontro o erro nas outras partes do código

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 listaSorteio = document.getElementById('lista-sorteio');
    for(let i = 0; i < amigos.length; i++){
        
        if(i == amigos.length - 1){
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' >>>>' + amigos[i+1] + '<br>'
        }else{
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' >>>>' + amigos[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]];
    }
}
1 resposta
solução!

Oi!

O problema está na sua função sortear:

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

Você declarou a variável com o nome listaSorteio, mas na sequência, dentro do for, está chamando pelo nome sorteio.