HashのValueをreduceしたい際に迷ったためメモ。
結論
hash = {
hoge1: 10,
hoge2: 20,
hoge3: 30
}
# 第二引数を (key, value) で渡す
hash.reduce(0) do |acc, (_, number)|
acc + number
end
# => 60
第二引数に一つだけ渡してみた場合
key → value → key → ... と交互に繰り返し処理が行われる
hash.reduce([]) do |acc, item|
acc + item
end
# => [:hoge1, 10, :hoge2, 20, :hoge3, 30] keyとvalueが交互に配列に格納された