配列から要素が「nil」のものを取り除く(compact)

Array クラスの compact メソッドを使用すると、配列に格納されている要素の中で nil のものを除外します。ここでは Ruby で要素が nil のものを取り除く方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 12 日更新)

要素が「nil」のものを取り除く

Array クラスで用意されている compact メソッドを使用すると、要素に nul が含まれるものを除外します。

Arrayオブジェクト.compact

compact メソッドは配列に含まれる要素の中で nil である要素を取り除いた新しい配列を返します。

具体的には次のように記述します。

ary = [1, 2, nil, 3, 4, nil]
newary = ary.compact

この場合、配列から nil の要素を取り除いた次の新しい配列を取得します。

[1, 2, 3, 4]

また compact メソッドには compact! メソッドも用意されています。

Arrayオブジェクト.compact!

compact! メソッドの場合には新しい配列を返すのではなく、対象の配列自身を nil 要素を取り除いた配列に変更します。

サンプルコード

実際に試してみます。

# encoding: UTF-8

ary = [1, 2, 3, nil, 4, nil]
newary = ary.compact

p ary
p newary

ary = [1, 2, 3, nil, 4, nil]
ary.compact!

p ary

実行結果は次のようになります。

nilの要素を取り除く

-- --

Ruby で要素が nil のものを取り除く方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。