数学パズルで出てきた。
定義済みの配列の中身をループしつつ、別の配列を渡してそれをループ内でも活用できるという関数。(参考: injectとeach_with_objectって何が違うのさ?)
ary = [["milk", 100], ["banana", 30], ["apple", 50]] result = ary.each_with_object({}) do |(name, price), hash| hash[name] = price end puts result // => {"milk"=>100, "banana"=>30, "apple"=>50}
数学パズルの中では、43問目の「カードを逆順になるように並べ替える」という問題の中で、並べ替えた後の順番を表現する際に使っている。
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問
posted with amazlet at 17.03.07