初めに
eachでもmapでも動くコードに当たって、違いを学んだので備忘録です。
結論
どちらも繰り返し処理だが、map
は結果を配列として保持する。
each
要素を単数でループさせます。戻り値はレシーバの配列です。
array = [1, 2, 3]
array.each do |x|
pp x + 1
end
2
3
4
=> [1, 2, 3]
map
要素をいじってから、配列で返します。戻り値は変化した配列です。
array = [1, 2, 3]
array.map do |x|
x + 1
end
=> [2, 3, 4]
Discussion