Еще один ответ на этот старый вопрос.
В моем сценарии я хотел подсчитать, сколько раз в день показывалось в массиве дней (day_array
).Мне не нужно было знать, не появился ли день в day_array
, поэтому я не инициализировал хеш days_count
, как gunn в его ответе .
Вот как я это сделал:
def count_days(day_array)
days_count = {}
day_array.each do |day|
days_count[day].nil? ? days_count[day] = 1 : days_count[day] = days_count[day] + 1
end
puts days_count
end
Если я скопирую и вставлю вышеупомянутое в irb, то:
> count_days(%w[SU MO])
{"SU"=>1, "MO"=>1}
> count_days(%w[SU SU MO])
{"SU"=>2, "MO"=>1}
По сути, в соответствии с предыдущими ответами.Но я подумал, что дополнительный пример не повредит.