1
resposta

[Projeto] Exercicios 2 ate 5

Fiz as questões de 2 até 5 não vi solução apresentada , gostaria de ter um retorno.Grato

/**
 * Adicione os números 1,2,3 em uma variável chamada minhaLista e armazene os números 4, 5 e 6 separadamente em outra variável. 
 * Use o método concat() para combinar as sequências de valores em uma nova lista chamada novaLista. 
 * Imprima novaLista no console.
 */
let minhalista =[];
let minhalista2 =[];
let adicionar = minhalista.push(1,2,3);
console.log(minhalista);
let adicionar2 = minhalista2.push(3,4,5,6);
console.log(minhalista2);
let novaLista = minhalista.concat(minhalista2);
console.log(novaLista);
//Remova o último elemento de novaLista. Imprima novaLista após a remoção.
novaLista2 = novaLista.pop();
console.log(novaLista);
//Utilize o algoritmo de Fisher-Yates (também conhecido como Knuth Shuffle) para embaralhar os elementos em novaLista.
//Pesquise e adapte o código para realizar o embaralhamento.
function listanova(){
embaralhar(novaLista);
removerDuplicatas(novaLista);
console.log(novaLista);
}

listanova();
//Função embaralha
function embaralhar(lista) {
    for (let indice = lista.length; indice; indice--) {
        const indiceAleatorio = Math.floor(Math.random() * indice);
        [lista[indice - 1], lista[indiceAleatorio]] = [lista[indiceAleatorio], lista[indice - 1]];
    }
}
//Crie uma função chamada removerDuplicatas que aceita um array como parâmetro e
//  retorna um novo array sem elementos duplicados.
//  Teste a função com novaLista e imprima o array resultante.
 function removerDuplicatas(x){    
    var conjunto = new Set(x);
    console.log(conjunto);
 }
1 resposta

Oi, Ivan! Como vai?

Seu raciocínio ao usar o concat() e aplicar o algoritmo de Fisher-Yates está correto e mostra que você já está explorando bem os métodos de array do JavaScript. Um ponto para ajustar seria o push da segunda lista, que inclui o número 3 de novo, o que pode gerar repetição desnecessária.

Uma dica interessante para o futuro é usar o método Array.from(new Set(...)) para remover duplicados de forma direta, veja:


let lista = [1, 2, 3, 3, 4, 5];
let semDuplicatas = Array.from(new Set(lista));
console.log(semDuplicatas);

Esse código cria um novo array sem duplicados usando um Set, que só permite valores únicos.

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