Segue meu código final com todos os complementos:
let amigos = [];
function removerDuplicatas(array) {
return [...new Set(array)];
}
function adicionar() {
let amigo = document.getElementById('nome-amigo');
if (amigo.value.trim() === '') {
alert('Informe o nome do Amigo!');
return;
}
const nomeMinusculo = amigo.value.toLowerCase();
if (amigos.some(nomeNaLista => nomeNaLista.toLowerCase() === nomeMinusculo)) {
alert('Este nome já foi incluído!');
amigo.value = '';
return;
}
amigos.push(amigo.value);
amigos = removerDuplicatas(amigos);
amigo.value = '';
atualizarLista();
}
function atualizarLista() {
let lista = document.getElementById('lista-amigos');
lista.innerHTML = '';
amigos.forEach(amigo => {
const item = document.createElement('div');
item.textContent = amigo;
lista.appendChild(item);
});
}
function embaralhar(array) {
// Implementação da função de embaralhar (Fisher-Yates)
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
function sortear() {
if (amigos.length < 4) {
alert('ADICIONE PELO MENOS 4 AMIGOS!');
return;
}
embaralhar(amigos);
let sorteio = document.getElementById('lista-sorteio');
sorteio.innerHTML = '';
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 = [];
atualizarLista();
document.getElementById('nome-amigo').value = '';
document.getElementById('lista-sorteio').innerHTML = '';
}