これはばかげた質問かもしれません。サンプルは配列からランダムな数の要素を返すことを知っています。たとえば、[1,2,3] .sample.times do
常に一定数の要素を特定の順序で返す方法はありますか?ルビーでこれを行う方法がわかりません。
編集:私は常にペナルティ名、重大度、名前をここで常に2番目で最後の配列からのみ返したいとしましょう。:
offenses = PERSON_SUMMARY[:offenses].map do |offense|
offense[:penalties].map do |penalty|
penalty.merge(name: offense[:offense_name])
end
end.flatten
=> [{:penalty_name=>"Prison", :severity=>"Medium", :name=>"Speeding"}, {:penalty_name=>"Ticket", :severity=>"Low", :name=>"Speeding"}, {:penalty_name=>"Prison", :severity=>"Medium", :name=>"Shoplifting"}, {:penalty_name=>"Fine", :severity=>"Low", :name=>"Shoplifting"}]
今私はやっています:
offenses.each do |hash|
hash.sample