as3 random array - randomize-array - actionscript 3
Wie Sie zufällig ein array mit actionscript 3?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Sie zufällig ein array mit actionscript 3?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine kurze version mit Array.sort () - Funktion:
Wenn Sie nicht "genügend" Zufälligkeit Sortieren Sie zweimal 🙂
BEARBEITEN - Erklärung Zeile für Zeile:
Für
Array
Methode der Klassesort()
können Sie nicht nur Sortier-Möglichkeiten wieArray.CASEINSENSITIVE, Array.DESCENDING
und so, aber auch Ihre eigene benutzerdefinierte Funktion für den Vergleich von Referenz (ein callback) nimmt zwei Parameter (zwei Elemente aus dem array zu vergleichen). Von AS3 Dokumentation:Hinweis: vergleichen Sie die Funktion Parameter kann eingegeben werden (wenn das array eingegeben wird) und haben alle Namen, die Sie möchten, zB.:
Diese Methode ist sehr nützlich, wenn Sie brauchen, um zu Sortieren von array-Elementen durch Ihre besonderen Eigenschaften. In der Randomisierung Fall
compareFunction
zufällig zurück-1, 0
oder1
und macht die array-Elemente wechseln Ihre Plätze (Indizes). Ich habe festgestellt, dass eine bessere Randomisierung (in meiner subjektiven und mathematisch ungeprüfte Meinung) ist, wenn die Methode gibt nur-1
und1
. Auch im Hinterkopf haben, dass die Sortierfunktion mit benutzerdefinierter Vergleichsfunktion nicht zu vergleichen, Elemente sequentiell so in einigen speziellen Fällen Randomisierung Ergebnisse können abweichen, was Sie erwarten könnte.(Math.random() < .5) ? -1 : 1
ist besser.Gibt es einen besseren Weg, mit denen auch Sie, mischen Sie das array in den Ort, wenn Sie das brauchen, und es wird Sie nicht machen, erstellen Sie dann eine einzelne Kopie des original-Arrays.
Hatte ich eine alternative Anforderung, wo ich wollte, nach dem Zufallsprinzip stecken viele Quell-arrays in das Ziel-array nach dem Zufallsprinzip. Wie Rytis ich bin ein großer fan der forEach, map und sort-Funktionen auf Arrays.
hier ist eine einfachere Funktion. Funktioniert auch auf mehrdimensionale arrays
Ich fand das sehr hilfreich. Ich hoffe, es kann dir auch helfen.
Wenn Sie Ihre array gemischt werden (Ihre Elemente können nicht zu wiederholen). Sie können mit dieser Funktion:
Verwendung:
dies ist, wie ich zufällig mein array aus 36 Karten für ein memory-Spiel,
wählen Sie zufällige Zeichenkette aus array
Verwendung: