Eu não estou conseguindo implementar o Fisher-Yates no desafio 4. :(
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu não estou conseguindo implementar o Fisher-Yates no desafio 4. :(
Olá, Mário! Vejo que você está tendo problemas com o algoritmo de Fisher-Yates no desafio 4. Não se preocupe, é um algoritmo um pouco mais complexo e é normal ter dificuldades no início.
O algoritmo de Fisher-Yates é usado para embaralhar os elementos de um array de maneira eficiente. Aqui está um exemplo de como você pode implementá-lo:
function embaralhar(array) {
var m = array.length, t, i;
// Enquanto ainda houver elementos para embaralhar...
while (m) {
// Escolha um elemento...
i = Math.floor(Math.random() * m--);
// E troque-o com o elemento atual.
t = array[m];
array[m] = array[i];
array[i] = t;
}
return array;
}
var novaLista = [1, 2, 3, 4, 5, 6];
novaLista = embaralhar(novaLista);
console.log(novaLista);
Neste código, a função embaralhar recebe um array como parâmetro. Ela percorre o array de trás para frente (isso é o que o while (m) faz) e, para cada elemento, escolhe outro elemento aleatório do array e troca os dois de lugar (isso é o que o i = Math.floor(Math.random() * m--) e as três linhas seguintes fazem).
Você pode adaptar esse código para o seu problema, substituindo array por novaLista.
Espero ter ajudado e bons estudos!