Ruby の配列に値が存在するかどうかを確認する
Stewart Nguyen
2023年1月30日
-
Array#include?
を使用する Ruby 配列に値が存在するかどうかを確認するメソッド -
Array#any?
を使用する Ruby 配列に値が存在するかどうかを確認するメソッド -
Array#index
メソッドを使用して、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