1
resposta

Desafio: hora da prática (Projeto Amigo Secreto);

// 1 - Adicione os números de 1 a 20 na variável chamada listaNumeros
let listaNumeros = [
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
    11, 12, 13, 14, 15, 16, 17, 18, 19, 20
];
console.log(`1 - Adicionando 20 números à listaNumeros: ${listaNumeros}`);

// 2 - Armazena os números 21, 22 e 23 separadamente em outra variável chamada listaAdicional
let listaAdicional = [21, 22, 23];
console.log(`2 - Adicionando 3 números à listaAdicional: ${listaAdicional}`);

// 3 - Use o método concat() para combinar as sequências de valores em uma nova lista chamada listaCombinada
let listaCombinada = listaNumeros.concat(listaAdicional);
console.log("3 - listaCombinada (total de números):", listaCombinada);

// 4 - Remova o último elemento de listaCombinada
listaCombinada.pop();
console.log(`4 - listaCombinada após a remoção do último elemento (total ${listaCombinada.length} números):`, listaCombinada);

// 5 - Utilize o algoritmo de Fisher-Yates (Knuth Shuffle) para embaralhar os elementos em listaCombinada
function embaralharLista(array) {
    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]]; 
    }
    return array;
}

// Embaralhando listaCombinada
listaCombinada = embaralharLista(listaCombinada);
console.log("5 - listaCombinada após embaralhamento (total de números):", listaCombinada.length, listaCombinada);

// 6 - Crie uma função chamada removerDuplicatas que aceita um array como parâmetro e retorna um novo array sem elementos duplicados
function removerDuplicatas(array) {
    return [...new Set(array)];
}

// 7 - Testa a função com listaCombinada e imprima a lista resultante
let listaSemDuplicatas = removerDuplicatas(listaCombinada);
console.log("6 - Remover duplicatas (total de números sem duplicatas):", listaSemDuplicatas.length, listaSemDuplicatas);
1 resposta

Oii!

Agradeço por compartilhar seu código.

Gostei de ver como você aplicou o método concat() e o algoritmo de Fisher-Yates para embaralhar a lista, está muito bem estruturado.

Uma coisa que você pode testar pra ver o funcionamento é usar o método slice() para criar cópias de arrays sem alterar o original. Assim:


let numeros = [1, 2, 3, 4];
let copia = numeros.slice();
console.log(copia);

slice() faz uma cópia rasa do array.

Conteúdos relacionados
Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!