オーダーメイドコース
icon
icon

Rubyのmapメソッドでwith_indexを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyのmapメソッドでwith_indexを使う方法について解説しています。with_indexを使うと指定したインデックスから繰り返し文を使うことが出来ます。ループ文を1行でわかりやすく書くことが出来てとても便利です。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyのmapメソッドでwith_indexを使う方法について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

mapメソッドでwith_indexを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

with_indexとは

with_indexとは、rubyの配列などの要素にindex(0から始まる数)を添えることができるメソッドです。

mapに対して使用すれば、ブロックの処理の中でindexを扱うことができます。配列に対して番号を振りたい時や、配列からhashを作成する時など様々な場面で使用します。

map.with_indexの書き方

with_indexは、mapの後に.with_indexと続けることで使用できます。ブロックで最後に書いたブロック引数にindexが代入されます。

# 配列arrayにmapメソッドを使う
# with_indexでindexを添える(0から始まる)
array.map.with_index{ |fruit,index|
#処理
}

 

また数値を引数にとることができ、indexのスタートする数値を変えることができます。

 

# with_indexでindexを添える(1から始まる)
array.map.with_index(1){ |fruit,index|
    #処理
}

 

以上が使い方です。

[PR] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

それでは実際に書いてみましょう。まずは引数なしの場合(indexが0から始まる場合)です。

# 配列fruits
fruits = ["apple","orange","banana"]
# 配列fruitsにmapメソッドを使う
# with_indexでindexを添える(0から始まる)
fruits.map.with_index{ |fruit,index|
    puts "#{index}番目は#{fruit}"
}

 

実行結果は以下の通りです。

0番目はapple
1番目はorange
2番目はbanana

次に、引数に1を持たせた場合(indexが1から始まる場合)です。

# 配列fruits
fruits = ["apple","orange","banana"]
# with_indexで引数に1を入れる
fruits.map.with_index(1){ |fruit,index|
    puts "#{index}番目は#{fruit}"
}

 

実行結果は以下の通りです。indexが1から始まります。

1番目はapple
2番目はorange
3番目はbanana

以上がwith_indexの使い方です。mapメソッドやその関連のメソッドをマスターすると配列の扱いがずっと楽になるので、ぜひ覚えましょう。

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。