カテゴリ: 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
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう