1
resposta

[Projeto] Projeto Amigo Secreto - Melhorias

Verificação para não incluir o espaço vazio na lista de nomes:

if(amigo.value === '') {
    alert ('Digite um nome para adicionar.');
    amigo.value = '';
    return;
}

Verificação para não incluir o mesmo nome duas vezes:

if (amigos.includes(amigo.value)) {
    alert (`O nome ${amigo.value} já foi adicionado. Por favor, insira um nome diferente.`);
    amigo.value = '';
    return;
}

Verificação para definir quantidade mínima de participantes para realizar o sorteio:

if (amigos.length < 4) {
    alert ('É necessário ter pelo menos 4 participantes para realizar o sorteio');
    return;
}

Código completo:

let amigos = [];

function adicionar() {
    let amigo = document.getElementById('nome-amigo');
    let lista = document.getElementById('lista-amigos');

    if(amigo.value === '') {
        alert ('Digite um nome para adicionar.');
        amigo.value = '';
        return;
    }
    
    if (amigos.includes(amigo.value)) {
        alert (`O nome ${amigo.value} já foi adicionado. Por favor, insira um nome diferente.`);
        amigo.value = '';
        return;
    }

    amigos.push(amigo.value);

    if (lista.textContent == '') {
        lista.textContent = amigo.value;
    } else {
        lista.textContent = lista.textContent + ', ' + amigo.value;
    }

    amigo.value = '';
}

function sortear() {
    if (amigos.length < 4) {
        alert ('É necessário ter pelo menos 4 participantes para realizar o sorteio');
        return;
    }
    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>';
            }
    }
}

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() {
    amigos = [];
    document.getElementById('lista-amigos').innerHTML = '';
    document.getElementById('lista-sorteio').innerHTML = '';
}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Aline.
Excelente trabalho.
Obrigado por compartilhar seu aprendizado conosco.
Bons estudos.