Boa tarde, gostaria de compartilha e pedir opiniões sobre o desafio de amigo secreto.
Estou muito feliz pois foi o primeiro projeto desafio em que eu menos precisei de ajuda do instrutores do curso, o código esta diferente mas esta com todas as funcionalidades que foram pedidas funcionando perfeitamente; único momento em que me confundi mais foi na função de sortear, ainda estou com um pouco de dificuldade em como usar for ()
Segue o código escrito abaixo
let listaAmigo = [];
function adicionar() {
let nomeAmigo = document.getElementById('nome-amigo');
if(nomeAmigo.value === ''){
alert('Digite um nome válido.')
return;
}
if (listaAmigo.includes(' '+ nomeAmigo.value)) {
alert('Há nomes repetidos na lista, por favor coloque o sobrenome do nome repetido para evitar confusões.');
return;
}
listaAmigo.push(' '+ nomeAmigo.value);
let amigosIncluidos = document.getElementById('lista-amigos');
amigosIncluidos.textContent = listaAmigo;
nomeAmigo.value = ('');
}
function sortear() {
embaralha(listaAmigo);
let sorteio = document.getElementById('lista-sorteio');
if(listaAmigo.length < 4) {
alert('Número de participantes insuficientes (Minimo 4)');
return;
}
for (let i = 0; i < listaAmigo.length; i++) {
if (i == listaAmigo.length - 1) {
sorteio.innerHTML = sorteio.innerHTML + listaAmigo[i] + '-->' + listaAmigo[0] + '<br>'
} else {
sorteio.innerHTML = sorteio.innerHTML + listaAmigo[i] + '-->' + listaAmigo[i + 1] + '<br>'
}
}
}
function reiniciar() {
listaAmigo.length = 0;
let amigosIncluidos = document.getElementById('lista-amigos');
amigosIncluidos.textContent = listaAmigo;
let sorteio = document.getElementById('lista-sorteio');
sorteio.innerHTML = ('');
let nomeAmigo = document.getElementById('nome-amigo');
nomeAmigo.value = ('');
}
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]];
}
}