35
35

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 mapメソッドについて

Posted at

#はじめに
エンジニア1年生です。
日々の学びのメモとしてコツコツと記事を書こうと思っています。
今回はmapメソッドの使い方について書いていきます。

#mapとは?
配列の要素の数だけ繰り返し処理を行うメソッドです。

#mapメソッド
書き方は
配列の入った変数.map {|変数名| 処理内容 }
です。

mapは処理後に戻り値で配列を作成してくれます。
元の配列が上書きされることはありません。

例として配列の要素の文字数をmapメソッドで取得して変数に入れてみます。

controller.rb
  animal = ["dog", "cat", "koara","bird"]
  animal.map {|a| a.length}

結果

  animalの中身は ["dog", "cat", "koara","bird"]
  戻り値は [3, 3, 5, 4]

このようにmapは戻り値で配列を作成してくれます。

#map!メソッド
配列の値を処理結果に置き換えたい場合に使用します。
map!は元の配列を戻り値に置き換えます。

controller.rb
  animal = ["dog", "cat", "koara","bird"]
  animal.map! {|a| a.length}

結果

  animalの中身は [3, 3, 5, 4]
  戻り値は [3, 3, 5, 4]

このようにmap!は配列の要素を処理の結果と入れ替えます。

#eachとの違い
 戻り値が異なります。
 mapは配列を作成して返してくれるのに対して
 eachの戻り値はレシーバ自体が返ってきます。

controller.rb
  animal = ["dog", "cat", "koara","bird"]
  animal.each {|a| a.length}

結果

  animalの中身は ["dog", "cat", "koara","bird"]
  戻り値は ["dog", "cat", "koara","bird"]
35
35
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
35
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?