ハッシュからeach_with_indexでkeyとvalとindexを取り出す。
ハッシュにeach_with_indexを使う場合は |(key,val),i| を覚えておくといい。
下記のようなハッシュオブジェクトで、each_with_indexを使う場合、
desserts = { "a" => "apple pie", "b" => "baumkuchen", "c" => "chocolate cake"}
obj.each_with_index do |obj,i| で各要素とインデックスを同時に取り出すことができるが、要素(obj)のハッシュオブジェクトは配列に変換されてしまう。
desserts.each_with_index do |obj,i| =i =dessert =dessert.class ="," end >> 0 ["a", "apple pie"] Array , 1 ["b", "baumkuchen"] Array , 2 ["c", "chocolate cake"] Array
ハッシュオブジェクトでなくなった要素のkeyとvalに指定した値を取り出すには、配列のインデックスをいちいち指定するしかないのか??
desserts.each_with_index do |obj,i| =i =dessert[0] =dessert[1] ="," end >> 0 "a" "apple pie" , 1 "b" "baumkuchen" , 2 "c" "chocolate cake" ,
と思っていたが、下記のように |(key,val),i| のような書き方ができる。
desserts.each_with_index do |(key,val),i| =i =key =val ="," end >> 0 "a" "apple pie" , 1 "b" "baumkuchen" , 2 "c" "chocolate cake" ,