Ruby (Rails)で、ハッシュの値をランダムに取得

単なる配列ならarray[rand(array.length)]でいいけど、
ハッシュの場合はhash[0]=>nilなので、ちょっと複雑になる。

hash={"key1"=>"val1","key2"=>"val2","key3"=>"val3","key4"=>"val4","key5"=>"val5"}
というハッシュの場合

まず、ランダムにソートすると
hash.sort_by{rand} #=>["key2", "val2"], ["key1", "val1"], ["key3", "val3"]
となるので、
hash.sort_by{rand}[0][1]

とする。

関連
Railsでランダムに検索
Rubyの配列をランダムに取得、シャッフルする


タグ:Rails ruby
posted by digital-squad at 2009年03月05日 15時48分 | Comment(0) | TrackBack(0) | Ruby on Rails / Ruby
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。