eachメソッド
今回は配列内に共通の処理を行うときに使うeachメソッドを説明していきたいと思います。
example = ["ゆーいち", 25, "エンジニア"]
例えばこのような配列があったとします。配列内の一つの要素を取り出す場合は**example[0]**のように番号を指定してあげるのでした。
もしここら辺がわからないという場合はこちらをご確認ください。
今回は配列内全てに対して処理を行います。
eachメソッドの定義
それでは配列内の全ての要素を順番に取り出し表示するという処理を書いていきます。
example = ["ゆーいち", 25, "エンジニア"]
example.each do |ex|
puts ex
end
# =>ゆーいち
#25
# エンジニア
これで配列内から要素を順番に取り出しそれぞれに対してputsという処理をする事ができました。
まず定義の仕方としては
**配列名.each do |変数|
処理
end **
このように定義します。
このとき変数名はなんでも構いません。
言い方を変えるとこの処理は、配列内の0番目の要素を取り出し変数にその要素が代入され処理をする。次に1番目の要素を...
この作業を配列内に要素がなくなるまで繰り返すと言ったほうがわかりやすいかもしれません。
配列内に処理をする要素がなくなった時点で終了します。
上の例でいうと、まず0番目の要素である"ゆーいち"が変数exに代入されex = "ゆーいち"の関係になりputs exなので"ゆーいち"が表示されます。次に25が取り出され...と言った感じですね。
each_with_indexメソッド
少し発展的なものとしてeach_with_indexメソッドも紹介していきます。
eachメソッドと処理の仕方は変わりませんがこのメソッドは取り出した要素の番号をつける事ができます。
例えば上の例で
[0]ゆーいち
[1]25
[2]エンジニア
と出力したい場合
example = ["ゆーいち", 25, "エンジニア"]
example.each_with_index do |ex, index|
puts "[#{index}]#{ex}"
end
# =>[0]ゆーいち
#[1]25
# [2]エンジニア
これで出力できました。変わったところは変数が一つ増えていますね一つ目の変数には配列内の要素が、二つ目には0から始まる番号を定義しています。
最後に
今回はeachメソッドについて説明していきました。例では要素が3つしかなかったので簡単でしたが、多くの要素を持っている配列だと一つ一つ取り出して行くのは無理がありますね。そういったときにeachメソッドを使いましょう。
最後まで読んでいただきありがとうございました。