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 5 years have passed since last update.

Ruby on Railsにおけるeach,mapの性質

0
Posted at

eachはブロックの引数を返す。

mapはブロックの戻り値を返す。

each

`a=[1,2,3] b = a.each do |n| n+2`

と定義したとき、
b = [1,2,3]
となる。
ブロックでn+2と定義しているが、eachは引数をそのまま返すため、引数としての配列の要素は出力時にも変わらない。

map

`a=[1,2,3] b = a.map do {|n| n+2}`

と定義したとき、
b = [3,4,5]
となる。
mapはブロックの戻り値を返すため、配列のそれぞれの要素nを+2した要素により構成されている配列を返す。

条件がついたとき
`a=[1,2,3] b = a.map do {|n| n+2 if n=4}`

とmapの戻り値をifで条件づけたとき、
b = [nil,4,nil]
配列の要素のうち条件に含まれない部分はnilとして出力される。
nilとして空白を含む配列ではなく、実数のみで構成される配列を返したい場合はselectを使う。

select

`a=[1,2,3] b = a.select do {|n| n+2 if n=4}` と定義したとき、 `b = [4]` このように、条件に合致している実数のみで構成される配列を返すことになる。
0
0
0

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?