在 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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。