在 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
。
print(['ruby', 'sapphire', 'amber'].include?('ruby'))
print("\n")
print(['ruby', 'sapphire', 'amber'].include?('moonstone'))
輸出:
true
false
使用 Array#any?
檢查值是否存在於 Ruby 陣列中的方法
我們也可以使用 Array#any?
而不是 Array#include?
檢視陣列是否包含值。因為 Array#any?
接受一個塊,它是複雜檢查邏輯的理想選擇。
如果塊返回的值不是 false
或 nil
,則返回 true
。
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'moonstone' })
print("\n")
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'ruby' })
輸出:
false
true
下面的程式碼將使用 any?
檢視陣列是否包含任何大小大於 4 的 gem。
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem.size > 4 })
輸出:
true
使用 Array#index
方法檢查值是否存在於 Ruby 陣列中
它要麼採用單個值,如 include?
確實,還是一個塊。
Array#index
返回匹配值的索引,否則返回 nil
,不像 include?
和 any?
返回布林值。
print(['ruby', 'sapphire', 'amber'].index { |gem| gem == 'ruby' })
print("\n")
print(['ruby', 'sapphire', 'amber'].index { |gem| gem.size > 10 })
輸出:
0
#returns nil