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

Dúvida no Exercicio 5 Amigo Secreto

Olá, estou tendo um problema no quinto exercicio do Amigo Secreto, o de remover as duplicatas da array novaLista. Eu tentei fazê-lo combinando o for com o .push, mas por algum motivo não esta funcionando

let listaDuplicada = [1, 2, 2, 3, 3, 4, 5, 4, 5];
console.log(listaDuplicada);
console.log(removerDuplicatas(listaDuplicada));

function removerDuplicatas(lista) {
    let semDuplicatas = []

for (i = 0; i < lista.length; i++) {
    if (semDuplicatas.includes(lista[i])) {
        return;
    } else {
        semDuplicatas.push(lista[i]);
    }
}
    return semDuplicatas;
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olha só, fica dando undefined no console.

1 resposta
solução!

Olá Angelo! Como vai?

O problema no seu código está no uso do return dentro do if. Quando você usa return, a função termina imediatamente, o que está fazendo com que ela retorne undefined assim que encontra um elemento duplicado.

Para corrigir isso, você deve continuar o loop sem retornar nada até que todos os elementos sejam verificados. Aqui está uma versão corrigida do seu código:

function removerDuplicatas(lista) {
    let semDuplicatas = [];

    for (let i = 0; i < lista.length; i++) {
        if (!semDuplicatas.includes(lista[i])) {
            semDuplicatas.push(lista[i]);
        }
    }
    return semDuplicatas;
}

let listaDuplicada = [1, 2, 2, 3, 3, 4, 5, 4, 5];
console.log(listaDuplicada);
console.log(removerDuplicatas(listaDuplicada));

Com essa alteração, o código deve funcionar corretamente e remover as duplicatas da lista.

Espero ter ajudado e bons estudos!

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