let amigos = [];
// Adiciona um amigo à lista
function adicionar() {
let inputAmigo = document.getElementById('nome-amigo');
let nome = inputAmigo.value.trim();
if (nome === '') {
alert("Por favor, insira um nome.");
return;
}
if (amigos.includes(nome)) {
alert("Este nome já foi adicionado.");
return;
}
amigos.push(nome);
atualizarListaAmigos();
inputAmigo.value = '';
}
// Atualiza a visualização da lista de amigos
function atualizarListaAmigos() {
let lista = document.getElementById('lista-amigos');
lista.innerHTML = '';
amigos.forEach((nome) => {
let li = document.createElement('li');
li.textContent = nome;
li.style.cursor = 'pointer';
li.title = 'Clique para remover este amigo';
li.addEventListener('click', () => removerAmigo(nome));
lista.appendChild(li);
});
}
// Remove um amigo da lista
function removerAmigo(nome) {
let index = amigos.indexOf(nome);
if (index !== -1) {
amigos.splice(index, 1);
atualizarListaAmigos();
}
}
// Realiza o sorteio de amigo secreto
function sortear() {
if (amigos.length < 4) {
alert('É necessário ter pelo menos 4 pessoas para realizar o sorteio.');
return;
}
embaralhar(amigos);
let sorteio = document.getElementById('lista-sorteio');
sorteio.innerHTML = '';
for (let i = 0; i < amigos.length; i++) {
let proximo = (i === amigos.length - 1) ? amigos[0] : amigos[i + 1];
sorteio.innerHTML += `${amigos[i]} --> ${proximo}<br/>`;
}
}
// Embaralha a lista de amigos usando Fisher-Yates
function embaralhar(lista) {
for (let i = lista.length; i > 0; i--) {
const indiceAleatorio = Math.floor(Math.random() * i);
[lista[i - 1], lista[indiceAleatorio]] = [lista[indiceAleatorio], lista[i - 1]];
}
}
// Reinicia o sorteio e a lista de amigos
function reiniciar() {
amigos = [];
document.getElementById('lista-amigos').innerHTML = '';
document.getElementById('lista-sorteio').innerHTML = '';
}
Desafios Lógica e Arrays
let minhaLista = [1, 2, 3];
let outraLista = [4, 5, 6];
let novaLista = minhaLista.concat(outraLista);
console.log("novaLista após concatenação:", novaLista);
novaLista.pop();
console.log("novaLista após remover o último elemento:", novaLista);
function embaralharArray(array) {
for (let i = array.length; i > 0; i--) {
const indiceAleatorio = Math.floor(Math.random() * i);
[array[i - 1], array[indiceAleatorio]] = [array[indiceAleatorio], array[i - 1]];
}
}
embaralharArray(novaLista);
console.log("novaLista após embaralhar:", novaLista);
function removerDuplicatas(array) {
let novoArray = [];
array.forEach(item => {
if (!novoArray.includes(item)) {
novoArray.push(item);
}
});
return novoArray;
}
let semDuplicatas = removerDuplicatas(novaLista);
console.log("novaLista sem duplicatas:", semDuplicatas);