Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Adição de amigos na pool de sorteio do projeto Amigo Secreto.

Estou na aula 05 do curso, na qual tem um projeto de sorteio de Amigo Secreto. Um dos botões da interface é o 'Adicionar', que coloca na pool de sorteio o nome inputado.

Os instrutores fizeram essa etapa desta maneira:

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

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

    amigo.value = '';
}

Mas decidi tentar um outro caminho, utilizando array. Conseguir incluir 1 nome na array, mas quando tento adicionar um segundo nome a array meio que volta do zero e o nome que eu tinha incluído primeiro some. A array volta a ter length 1 com apenas o 2 nome adicionado.

function adicionar() {
    let amigo = document.getElementById('nome-amigo').value;
    let listaAmigos = [];
    let listaPagina = document.getElementById('lista-amigos');

    listaAmigos.push(amigo);

    if (listaAmigos.length == 1) {
        listaPagina.textContent = listaAmigos;
    } else {
        listaAmigos.push(amigo);
        listaPagina.textContent = listaAmigos.join(', ');
    }

    console.log(listaAmigos);
}

Alguém sabe dizer onde errei/deixei de colocar algo?

2 respostas
solução!

Oi, Gabriel

// isso faz o array iniciar do zero
// Apagando todos os dados existentes quando a função adicionar() é chamada
let listaAmigos = [];

Coloque fora da função


let listaAmigos = [];

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

    listaAmigos.push(amigo);

    if (listaAmigos.length == 1) {
        listaPagina.textContent = listaAmigos;
    } else {
        listaAmigos.push(amigo);
        listaPagina.textContent = listaAmigos.join(', ');
    }

    console.log(listaAmigos);
}

WOW mindblowing ahahhahah

Obrigado, Luis, deu super certo aqui! Tentei diversas coisas sem sucesso, realmente não tinha me atentado a esse """detalhe""" que você apontou.

Valeuuuu!