スライドショー

Rubyのmap,map! 配列の繰り返し処理を実行してみよう!

配列を使用していると、配列の要素ごとに同じ処理を繰り返したい場合があります。

そんなとき、map(マップ)メソッドは、「配列の要素分同じ処理を繰り返し実施」することができるので非常に便利です。

  • 配列の要素ごとに同じ処理を繰り返し実施したい
  • ハッシュも同様に同じ処理を繰り返したい

そこで、ここではmapメソッドについて、以下の内容を解説していきます!

・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の使い方を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説