{category}

Ruby - イテレーションとEnumerator

map

マップ(制御構造と繰り返し

意味 配列の要素を変換して新しい配列を作成


mapとは?

mapは、配列やハッシュなどの各要素に対して同じ処理を適用し、その結果を新しい配列として返すメソッドです。元の配列を変更せずに、新しい配列を作成できます。

mapの具体的な使い方

配列の要素を2倍にする例

numbers = [1, 2, 3, 4, 5]

doubled = numbers.map { |n| n * 2 }

puts "元の配列: #{numbers}"
puts "2倍にした配列: #{doubled}"

👇出力結果

元の配列: [1, 2, 3, 4, 5]
2倍にした配列: [2, 4, 6, 8, 10]

この例では、numbers配列の各要素を2倍にした新しい配列doubledを作成します。mapメソッドは各要素に対してブロック内の処理(n * 2)を適用し、その結果を新しい配列に集めます。元の配列は変更されません。

文字列配列の変換例

fruits = ['apple', 'banana', 'cherry']

upcased_fruits = fruits.map(&:upcase)

puts "元の配列: #{fruits}"
puts "大文字に変換した配列: #{upcased_fruits}"

👇出力結果

元の配列: ["apple", "banana", "cherry"]
大文字に変換した配列: ["APPLE", "BANANA", "CHERRY"]

この例では、果物の名前を含む配列の各要素を大文字に変換します。&:upcaseは{ |fruit| fruit.upcase }の省略形です。この方法は、メソッドを直接呼び出す場合に使用できる簡潔な書き方です。

mapに関するよくある質問

Q. mapとeachの違いは何ですか?
A. mapは新しい配列を返しますが、eachは元の配列をそのまま返します。mapは変換処理に、eachは単純な繰り返し処理に適しています。
Q. mapは元の配列を変更しますか?
A. いいえ、mapは元の配列を変更せず、新しい配列を作成して返します。元の配列を変更したい場合は、map!メソッドを使用します。
Q. mapでnilを返すとどうなりますか?
A. ブロック内でnilを返すと、結果の配列にはその位置にnilが含まれます。nilを除外したい場合は、mapの後にcompactメソッドを使用します。

mapが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのmapやeach_with_index、if、case、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

each_with_index

要素と位置を同時に扱う

種類: イテレーションとEnumerator

if

条件が真の時に実行

種類: 条件分岐

case

複数の条件分岐

種類: 条件分岐

split

文字列を分割する

種類: 文字列操作

transform_keys

ハッシュのキーを変換

種類: ハッシュ操作