0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】each_with_indexなどの添字付きの繰り返し処理を初心者向け解説!

Posted at

皆さん添字付きの繰り返し処理はご存知でしょうか?

添字付きの繰り返し処理とは、each_with_indexメソッドやwith_indexメソッドのことです。

これらを使うことで、人間にわかりやすく配列を表現したりするなど、情報の使い方にレパートリーが増えるので、是非理解してみてください!

each_with_indexを解説!

each_with_indexとは、配列の要素に添字をいれることのできるメソッドです。

とは言っても、これだとわかりにくいので、コードを確認してみましょう。

fruits = ['orange', 'apple', 'melon']

 # 下のブロックの引数のiには0,1,2...と要素の添字が入る

fruits.each_with_index {|fruit, i| puts "#{i}: #{fruits}"}

#=> 0: apple
#   1: orange
#   2: melon

まず、fruitsという変数に配列を渡します。

そして、fruitsにeach_with_indexメソッドを使用し、doとendを省略したブロックを定義します。

それを出力すると、各要素に定義した通り添字が入るという流れです。

putsブロック内のputs以降をうまく定義してあげることで、人間にわかりやすい内容を出力することができます。

いろんな組み合わせができるwith_indexを解説!

実は、each_with_indexメソッドのような方法以外にも、配列の要素に添字をつけることができる方法があります。

それはwith_indexメソッドです。

このメソッドはeach以外に、mapやdelete_ifなどのメソッドに適用することができます。そして、それらのメソッドを使用する際に添字をつけることができます。

使用する方法はeach_with_indexとほとんど変わりません。

fruits = ['orange', 'apple', 'melon']

fruits.delete_if.with_index {|fruits, i| fruit.include?('a') && i.odd?}

#=> ["apple", "melon"]

このように、delete_ifなどのメソッドにwith_indexメソッドを使用するだけです。

まとめ

どうでしたでしょうか。

このようなメソッドも使うこともあるかもしれないので、知っておくと便利かもしれません。

これからも1日1記事を目標に、初心者に向けて基本的な知識を記事にしていくので、よろしくお願いします。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?