1. ホーム
  2. ruby

[解決済み] 配列からランダムに選択する方法は?

2022-02-26 11:46:07

質問

もっときれいな方法があれば知りたいです。基本的に、私は可変長の配列からランダムに要素を選びたいのです。 通常、私はこのようにします。

myArray = ["stuff", "widget", "ruby", "goodies", "java", "emerald", "etc" ]
item = myArray[rand(myarray.length)]

2行目を置き換えることで、より読みやすく/よりシンプルになるものはないでしょうか?それともそれがベストな方法なのでしょうか。私はあなたが行うことができると思います myArray.shuffle.first が、私が見たのは #shuffle は、先ほどSOで紹介されたばかりで、まだ実際に使ってはいません。

解決方法は?

ただ Array#sample :

[:foo, :bar].sample # => :foo, or :bar :-)

Ruby 1.9.1+で利用可能です。それ以前のバージョンのRubyでも使えるようにするには、以下のようにします。 require "backports/1.9.1/array/sample" .

Ruby 1.8.7では、不幸にも choice それ以降のバージョンではリネームされているので、使わないでください。

この場合、有用ではありませんが。 sample には数値の引数を指定できます。