Hy Jungs. Ich mache ein Memory-Spiel und um das zu erreichen, musste ich Bilder in Array irgendwie mischen. Ich fand eine alte Antwort auf Stack Overflow, Fisher-Yates Shuffle, und benutzte das, und es funktioniert, aber ich verstehe nicht, wie. Kann jemand Schritt für Schritt erklären, was jedes Element in diesem Code darstellt? Vor allem die erste Zeile, wie gibt es drei Werte in einer Variablen. Vielen Dank.shuffle JavaScript Array
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
wie so verwendet:
var arr = [2, 11, 37, 42];
arr = shuffle(arr);
console.log(arr);
Mögliche Duplikat von [Wie zufällig (Shuffle) ein JavaScript-Array?] (Http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array) – vlaz
Es sind nicht drei Werte in der ersten Zeile, sondern 3 verschiedene Variablen, wobei nur die erste mit der Array-Länge – eavidan
initialisiert wird. Die Antwort im Duplikat enthält Ressourcen über Fisher-Yates. Allgemeiner gesagt, da dieser Algorithmus allgemein bekannt ist, können Sie ihn einfach googeln, um mehr zu erfahren. Es hat sogar eine Wikipedia-Seite. – vlaz