Ich möchte, dass meine Array-Elemente verschlüsselt werden. Etwas wie das:
[1,2,3,4].scramble => [2,1,3,4]
[1,2,3,4].scramble => [3,1,2,4]
[1,2,3,4].scramble => [4,2,3,1]
und so weiter, zufällig
Jetzt eingebaut:
[1,2,3,4].shuffle => [2, 1, 3, 4]
[1,2,3,4].shuffle => [1, 3, 2, 4]
!
nach dem Aufruf zum Mischen ein hinzu. Ohne das wird!
das gemischte Array zurückgegeben und ist reif für eine Zuordnung.Für Ruby 1.8.6 (in dem kein Shuffle eingebaut ist):
quelle
sort_by
Funktion nicht wie die Sortierfunktion von Javascript (oder die Sortierfunktion von Ruby) funktioniert. Dabei ist es nur wichtig, ob die berechnete Zahl kleiner als Null, Null oder größer als Null ist.sort_by
Erinnert sich stattdessen an den berechneten Wert für jedes Element und sortiert die Elemente dann nach diesem Wert. In diesem Fall wird jedem Element eine Zufallszahl zugewiesen, und dann wird das Array nach diesen Zufallszahlen sortiert.Für Ruby 1.8.6 als Beispiel für sepp2k, aber Sie möchten immer noch die "Shuffle" -Methode verwenden.
Prost
quelle
Code aus dem Backports Gem für nur das Array für Ruby 1.8.6. Ruby 1.8.7 oder höher ist eingebaut.
quelle
Die Ruby - Facets Bibliothek von Erweiterungen verfügt über ein
Random
Modul , die nützliche Methode einschließlich bietetshuffle
undshuffle!
einschließlich zu einer Reihe von Kern - KlassenArray
,Hash
undString
.Seien Sie nur vorsichtig, wenn Sie Rails verwenden, da ich einige böse Zusammenstöße in der Art und Weise erlebt habe, wie das Monkeypatching mit Rails '...
quelle