配列を使用していると、配列の要素ごとに同じ処理を繰り返したい場合があります。
そんなとき、map(マップ)メソッドは、「配列の要素分同じ処理を繰り返し実施」することができるので非常に便利です。
- 配列の要素ごとに同じ処理を繰り返し実施したい
- ハッシュも同様に同じ処理を繰り返したい
そこで、ここではmapメソッドについて、以下の内容を解説していきます!
・mapメソッドの使い方
・map!メソッドの使い方
・hashをmapで使用する場合
など、map,map!の基本的な使い方をわかりやすく解説していきます。
mapメソッドを使用すればコードの記述量を減らして可読性も高くなりますので、使い方をしっかりと覚えていきましょう。
map,map!メソッドとは
map(マップ)メソッドは配列の要素分同じ処理を繰り返したいときに使用します。
mapメソッドは以下のように記述します。
書き方:
オブジェクト名.map { |変数| 実行する処理 }
mapメソッドを使用すると配列のオブジェクトの要素を1つずつ取り出して、指定した変数に代入されます。
指定した変数に対して、1つずつ処理が行われます。
mapメソッドで元のデータに変更が生じる場合にはmapの末尾に「!」をつけて「map!」とします。
次項よりmap、map!メソッドの詳しい使い方について見ていきましょう。
mapメソッドの使い方
ここでは、mapメソッドの使い方について解説します。
たとえば、以下の配列の値を大文字に変更したい場合は以下のように記述します。
サンプルプログラム:
language = ["Ruby", "Rails", "Python", "Swift", "Java", "PHP"] p language.map {|a| a.upcase }
このサンプルでは、mapメソッドで変数aに対してupcaseメソッドを使用して文字列を大文字に変更しています。
実行結果を確認すると、小文字が大文字に変更されていることがわかりますね!
実行結果:
["RUBY", "RAILS", "PYTHON", "SWIFT", "JAVA", "PHP"]
map!メソッドの使い方
ここでは、map!メソッドの使い方について解説します。
map!メソッドは先述したように元の値を変更したい場合は末尾に「!」を指定します。
以下の例では配列に対してmapメソッドで演算処理を実施しています。
サンプルプログラム:
array = [10, 20, 30, 40, 50] p array.map!{|x| x * 2 }
実行結果:
[20, 40, 60, 80, 100]
hashをmapで使用する場合
mapメソッドはhash(ハッシュ)でも使用することができますが、返り値は配列となりますので注意が必要です。
サンプルプログラム
hash1 = {ruby:"rails",php:"cakePHP",java:"Spring"} has hash1.map {|k,v| v.upcase } p hash2
実行結果:
["RAILS", "CAKEPHP", "SPRING"]
実行結果のとおり配列を返していることがわかりますね。
なお、ハッシュメソッドについては以下の記事で詳しく解説しています!
まとめ
ここではmap,map!について
- map,map!メソッドとは
- mapメソッドの使い方
- map!メソッドの使い方
- hashをmapで使用する場合
などについて解説しました。
mapは配列の要素に同じ処理を繰り返し実施したい場合に非常に便利ですので、使い方はしっかりと理解しておきましょう。
もし、mapの使い方を忘れてしまったら、この記事を思い出してくださいね。