目的
-連想配列における繰り返し処理の方法を理解する
ポイント
- ループごとにHash のキーが第一引数に、バリューが第二引数として渡される
- 配列の繰り返し処理とブロック内の書き方は変わらない
書き方の例
scores = {japanese: 30, english: 20}
scores.each do |key, value|
puts "#{key}の点数は#{value}です"
end
#scores.each {|k, v| puts "#{k}の点数は#{v}です"}
~実際の表示~
japaneseの点数は30です
englishの点数は20です
注意するポイント
- 第一引数、第二引数の変数は、なんでも良い
具体的な例
#変数userの各要素の値を全て小文字に変換した内容を別のHashに代入
# => 各要素に同じ処理をするため、繰り返し処理を使う
# => downcase で小文字に変換
# => 連想配列の形で表示(.to_h)(map)
user = {first_name: "NakaTa", last_name: "DaIchi"}
result = user.map {|k,v| [k,v.downcase]}.to_h
#result = user.to_h{|k, v| [k, v.downcase]} ペアごとに処理をしてくれるため、map を書かなくても良い
#result = user.transform_values{|v| v.downcase} valueのみを変更するメソッドなので、key を省略できる
#result = user.transform_values(&:downcase)
p result
~実際の表示~
{:first_name=>"nakata", :last_name=>"daichi"}