这可能是一个愚蠢的问题。我知道 sample 从数组中返回随机数量的元素。例如, [1,2,3].sample.times 做
有没有办法始终以特定顺序返回固定数量的元素?我不知道如何在红宝石中做到这一点。
编辑:假设我总是想从这里的第二个和最后一个数组中返回惩罚名称、严重性和名称。:
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