どうものりにぃです!
今回は繰り返し処理である、eachとmapメソッドの違いについて紹介していきます!
【ジャンルが豊富で学びたい講座がきっとみつかる】
習得したいスキルが明確で年収アップのために学習している方!
- ジャンルが豊富で学びたい講座がきっとみつかる
- お手頃な価格帯
- 学びやすい多彩な機能
オンライン完結で手軽に学べるプラットフォームです!
結論
結論としてeachメソッドは元の配列を返し、mapメソッドは処理後の配列を返します。
eachメソッドの使い方
まずはeachメソッドはこのように使います。(なおmapメソッドも同じです。)
オブジェクト.each(mapも同じ) do |変数| 繰り返し処理 end
eachメソッドは主に配列から要素を1つずつ取り出したいときに利用します。
実際に使ってみましょう!
num = [] [1, 2, 3].each do |x| puts x end 1 2 3 => [1, 2, 3]
putsの結果である1,2,3が実行結果として出力され、返り値としてレシーバ自身である配列が返ります。
mapメソッドの使い方
mapメソッドもeachと似ていますが、処理後に結果に着目してみましょう。
[1, 2, 3].map do |x| x + 1 end => [2, 3, 4]
このように繰り返し処理後の配列が返り値になりますね!
mapメソッドを使うタイミングとは?
eachメソッドでmapメソッドのような使い方をしたいときは、空の配列をeachの外に定義するときです。
このようになります。
num = [] [1, 2, 3].each do |x| num << x + 1 end return num => [2, 3, 4]
空の配列をeachの外に定義し、繰り返し処理で代入した後、retunで返すというやり方です。
これは僕自身、実務の中でも使っていました。
しかしこれは先程mapメソッドで行うほうがコード量も減りますね!
以上よりmapメソッドは処理結果後の配列を返したいとき、mapメソッドで代用してみてください!