迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 Ruby 中检查值是否存在于数组中

作者:迹忆客 最近更新:2023/03/21 浏览次数:

在 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? 接受一个块,它是复杂检查逻辑的理想选择。

如果块返回的值不是 falsenil,则返回 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

用 Ruby 解析 XML

发布时间:2023/03/21 浏览次数:112 分类:编程语言

本文展示了如何在 Ruby 中使用 gem nokogiri 解析 XML 文件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便