let lista = []
function adicionar(){
let nomeAmigo = document.getElementById('nome-amigo').value
let listaAmigos = document.getElementById('lista-amigos')
if (listaAmigos.textContent.includes(nomeAmigo)){
alert('Nome já incluido no sorteio, por favor digite um nome diferente.')
document.getElementById('nome-amigo').value = ''
return
} else if(nomeAmigo == ''){
alert('Por favor digite um nome.')
return
}
document.getElementById('nome-amigo').value = ''
//Deixando nome em amigo incluidos mais bonito
if (lista.length == 0){
listaAmigos.textContent = nomeAmigo
} else {
listaAmigos.textContent += `, ${nomeAmigo}`
}
return lista.push(nomeAmigo)
}
let sorteando = []
let sorteado = []
function sortear(){
let sorteio = document.getElementById('lista-sorteio')
alert(lista.length)
if (lista.length < 2){
alert('Número de participantes invalidos.')
return
}
let i = 0
while(i <= lista.length - 1){
let nomeSorteando = lista[numeroAleatorio(0, lista.length - 1)]
let nomeSorteado = lista[numeroAleatorio(0, lista.length - 1)]
while (nomeSorteado == nomeSorteando){
nomeSorteado = lista[numeroAleatorio(0, lista.length - 1)]
}
if(i == 0){
sorteando.push(nomeSorteando)
sorteado.push(nomeSorteado)
sorteio.innerHTML = `<p id="lista-sorteio">${sorteando[i]} --> ${sorteado[i]}</p>`
}else {
while (sorteando.includes(nomeSorteando) || nomeSorteando == nomeSorteado){
nomeSorteando = lista[numeroAleatorio(0, lista.length - 1)]
}
while (sorteado.includes(nomeSorteado) || nomeSorteado == nomeSorteando){
nomeSorteado = lista[numeroAleatorio(0, lista.length - 1)]
}
sorteando.push(nomeSorteando)
sorteado.push(nomeSorteado)
sorteio.innerHTML += `<p id="lista-sorteio">${sorteando[i]} --> ${sorteado[i]}</p>`
}
i++
}
}
function reiniciar(){
lista = []
document.getElementById('lista-amigos').textContent = ''
sorteando = []
sorteado = []
document.getElementById('lista-sorteio').textContent = ''
}
function numeroAleatorio(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
O código funciona, mas ocasionalmente a função sortear gera um looping infito, gostaria de saber o que está causando isso