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

広告

配列に格納されている要素の中で「nil」のものを取り除く方法を確認します。Arrayクラスで用意されている「compact」メソッドを使います。

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」要素を取り除いた配列に変更します。

サンプルプログラム

実際に試してみます。

LibraryArray14.rb

#! ruby -Ks

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の要素を取り除く

( Written by Tatsuo Ikura )