2 Stimmen

Auswählen eines zufälligen Elements aus einem Array

Mögliches Duplikat:
Wie wähle ich zufällig aus einem Array aus?

Wie kann man sicherstellen, dass ein nicht vorhandener Gegenstand nicht ausgewählt wird?

 icons = %w[asterisk star arrow]
 random = rand(icons.length)

oder

icons = %w[asterisk star arrow]
random = rand(icons.length -1)

21voto

clyfe Punkte 23285

Wie wäre es mit der Verwendung von Array#Beispiel

[1, 2, 3].sample(1)

Beispielobjekt
sample(random: rng) obj
Probe(n) neu_ary
sample(n, random: rng) new_ary
Wählen Sie ein zufälliges Element oder n zufällige Elemente aus dem Array. Die Elemente werden mit Hilfe von zufälligen und eindeutigen Indizes im Array ausgewählt, um sicherzustellen, dass sich ein Element nicht wiederholt, es sei denn, das Array enthält bereits doppelte Elemente. Wenn das Array leer ist, gibt die erste Form null zurück und die zweite Form ein leeres Array.
Wenn rng angegeben wird, wird es als Zufallszahlengenerator verwendet.

(Vorausgesetzt, Sie sind mehr an dem Element als an dem Index interessiert)

1voto

Telmo Marques Punkte 5024

Es wäre die erste.

icons = %w[asterisk star arrow]
random = rand(icons.length)

Wie in der Dokumentation angegeben:

Wenn das Argument ein Integer oder ein Bignum ist, wird eine zufällige ganze Zahl größer oder gleich Null zurückgegeben und weniger als das Argument .

Wenn also das Array aus 10 Elementen (0 .. 9) besteht, sollte rand(10) eine Zahl zwischen 0 und 9 zurückgeben.

Fuente: http://www.ruby-doc.org/core-1.9.3/Random.html

0voto

Marek Příhoda Punkte 10858
icons = %w[asterisk star arrow]
puts icons.sample

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X