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

[Sugestão] Desafio Hora da Prática (1 a 5) - Amigo secreto

Segue a maneira com que realizei os desafio com alguns melhoramentos.

let amigos = [];

function removerDuplicatas(array) {
    return [...new Set(array)];
}

function adicionar() {
    let amigo = document.getElementById('nome-amigo');
    
    if (amigo.value.trim() === '') {
        alert('Digite um nome válido!');
        return;
    }

    // Verifica se o nome já foi adicionado
    if (amigos.includes(amigo.value)) {
        alert('Este nome já foi incluído!');
        amigo.value = ''; // Limpa o campo de entrada
        return;
    }

    amigos.push(amigo.value);
    amigos = removerDuplicatas(amigos); // Remove duplicatas
    
    amigo.value = '';
    atualizarLista();
}

function atualizarLista() {
    let lista = document.getElementById('lista-amigos');
    lista.innerHTML = ''; // Limpa a lista antes de atualizar
    amigos.forEach(amigo => {
        const item = document.createElement('div');
        item.textContent = amigo;
        lista.appendChild(item);
    });
}

function embaralhar(array) {
    // Implementação da função de embaralhar
}

function sortear() {
    embaralhar(amigos);
    let sorteio = document.getElementById('lista-sorteio');
    sorteio.innerHTML = ''; // Limpa usando innerHTML uma vez

    for (let i = 0; i < amigos.length; i++) {
        const linha = document.createElement('div');
        const proximo = i === amigos.length - 1 ? 0 : i + 1;
        linha.textContent = `${amigos[i]} → ${amigos[proximo]}`;
        sorteio.appendChild(linha);
    }
    alert("Perfeito, esta é a lista dos amigos secretos!");
}

function reiniciar() {
    amigos = []; // Limpa a lista de amigos
    atualizarLista(); // Atualiza a lista na interface
    document.getElementById('nome-amigo').value = ''; // Limpa o campo de entrada
    document.getElementById('lista-sorteio').innerHTML = ''; // Limpa o campo das pessoas sorteadas
}
1 resposta
solução!

Oi, Paulo!

Obrigada por compartilhar seu código com a comunidade Alura.

Gostei de como você utilizou a função removerDuplicatas e aplicou a lógica para evitar nomes duplicados na lista. E, sua implementação da função sortear tá bem clara e organizada, o que facilita o entendimento do processo de associação entre os amigos.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

bons estudos