Ruby の配列に値が存在するかどうかを確認する

Stewart Nguyen 2023年1月30日
  1. Array#include? を使用する Ruby 配列に値が存在するかどうかを確認するメソッド
  2. Array#any? を使用する Ruby 配列に値が存在するかどうかを確認するメソッド
  3. Array#index メソッドを使用して、Ruby 配列に値が存在するかどうかを確認する
Ruby の配列に値が存在するかどうかを確認する

Ruby では、配列は一般的なデータ型です。これには、数値、文字列、ブール値、さらには別の配列など、さまざまなデータ型の要素が含まれています。

状況によっては、特定の配列に値が存在するかどうかを確認する必要がある場合があります。この記事では、配列の組み込みメソッドを使用してこれを行う方法を示します。

Array#include? を使用する Ruby 配列に値が存在するかどうかを確認するメソッド

Array#include? は、値が配列内にあるかどうかを確認する最も簡単な方法のようです。

要素が配列内にある場合、Array#include?true を返します。それ以外の場合は false を返します。

Ruby
 rubyCopyprint(['ruby', 'sapphire', 'amber'].include?('ruby'))
print("\n")
print(['ruby', 'sapphire', 'amber'].include?('moonstone'))

出力:

 textCopytrue
false

Array#any? を使用する Ruby 配列に値が存在するかどうかを確認するメソッド

Array#any? を使用することもできます Array#include? の代わりに配列に値が含まれているかどうかを確認します。Array#any? ブロックを受け入れるため、複雑なチェックロジックに最適です。

ブロックが false または nil 以外の値を返す場合は、true を返します。

Ruby
 rubyCopyprint(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'moonstone' })
print("\n")
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'ruby' })

出力:

 textCopyfalse
true

以下のコードは any? を使用します配列に 4 より大きいサイズの gem が含まれているかどうかを確認します。

Ruby
 rubyCopyprint(['ruby', 'sapphire', 'amber'].any? { |gem| gem.size > 4 })

出力:

 textCopytrue

Array#index メソッドを使用して、Ruby 配列に値が存在するかどうかを確認する

include? のように、単一の値を取ります。する、またはブロック。

Array#index は、一致した値のインデックスを返します。それ以外の場合は、ブール値を返す include?any? とは異なり、nil を返します。

Ruby
 rubyCopyprint(['ruby', 'sapphire', 'amber'].index { |gem| gem == 'ruby' })
print("\n")
print(['ruby', 'sapphire', 'amber'].index { |gem| gem.size > 10 })

出力:

 textCopy0
#returns nil

関連記事 - Ruby Array