カテゴリ: Ruby 更新日: 2025/12/27

Ruby配列の変換と加工を完全解説!map・flat_map・compactで初心者も安心

変換と加工:map/collect・flat_map・compact/compact! の使い方
変換と加工:map/collect・flat_map・compact/compact! の使い方

先生と生徒の会話形式で理解しよう

生徒

「配列の中身をまとめて変えたり、いらないものを消したりできますか?」

先生

「Rubyの配列には、変換や加工を簡単にする便利な命令があります。」

生徒

「難しそうで不安です……」

先生

「大丈夫です。一つずつ、身近な例で説明します。」

1. 配列の変換と加工とは?

1. 配列の変換と加工とは?
1. 配列の変換と加工とは?

Rubyの配列(Array)は、データを並べて保存できる便利な入れ物です。 その配列の中身を一括で変えたり、不要なデータを取り除いたりする操作を 変換加工と呼びます。

例えば、全員のテスト点数を二倍にしたり、空白のデータを消したりする場面です。 手作業では大変な作業も、Rubyの命令を使えば一瞬で終わります。

2. map と collect の基本

2. map と collect の基本
2. map と collect の基本

mapは、配列のすべての要素に同じ処理をして、 新しい配列を作るための命令です。 collectはmapとまったく同じ意味で、書き方が違うだけです。


numbers = [1, 2, 3]
result = numbers.map { |n| n * 2 }
p result

[2, 4, 6]

これは工場のベルトコンベアで、流れてくる商品に同じ加工をするイメージです。 元の配列はそのままで、新しい配列が作られる点が特徴です。

3. flat_mapで配列を平らにする

3. flat_mapで配列を平らにする
3. flat_mapで配列を平らにする

flat_mapは、mapと配列を平らにする処理を同時に行います。 平らにするとは、入れ子になった配列を一段にすることです。


items = ["a", "b", "c"]
result = items.flat_map { |i| [i, i.upcase] }
p result

["a", "A", "b", "B", "c", "C"]

箱の中に箱が入っている状態を、全部広げて一列に並べる感覚です。 データ整理でとても役立つ命令です。

4. compactでnilを取り除く

4. compactでnilを取り除く
4. compactでnilを取り除く

配列の中には、nilという「何も入っていない」値が 含まれることがあります。 compactは、そのnilだけを取り除いてくれます。


data = [1, nil, 2, nil, 3]
p data.compact

[1, 2, 3]

空の箱だけを片付けて、中身のある箱だけ残すイメージです。 元の配列は変わらないので安心して使えます。

5. compact! の注意点

5. compact! の注意点
5. compact! の注意点

compact!は、compactと違い、 元の配列そのものを書き換えます。 感嘆符が付く命令は「直接変更する」意味を持つことが多いです。


data = [1, nil, 2]
data.compact!
p data

[1, 2]

元のデータを残したい場合は使わないように注意しましょう。

6. 変換と加工を使いこなす考え方

6. 変換と加工を使いこなす考え方
6. 変換と加工を使いこなす考え方

mapやflat_map、compactは、 配列を一つずつ手作業で処理する代わりに、 「まとめて処理する」ための道具です。

配列操作に慣れてくると、短く読みやすいプログラムが書けるようになります。 まずは例を真似して、動かしながら理解することが大切です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Rails
Rails GoodJob入門!PostgreSQLベースのバックグラウンド処理を初心者向けに完全解説
New2
Ruby
Rubyで学ぶビット演算入門:&・|・^・~・<<・>>の基礎と実例
New3
Rails
RESTとRailsの関係を徹底解説!resources設計と7つの標準アクションを初心者向けにわかりやすく解説
New4
データベース
MySQLアーキテクチャ入門!初心者向けに基本構造と仕組みを徹底解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.3
Java&Spring記事人気No3
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.7
Java&Spring記事人気No7
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説