如何检查Ruby结构中是否存在值?

时间:2015-01-19 08:43:06

标签: ruby arrays json

我曾经拥有一系列独立数组(例如name()id()description())。我曾经能够通过执行name.include?("Mark")

来检查特定数组中是否存在值

现在,我采用了更优雅的方式来管理不同的这些独立数组(这里是背景:How do I convert an Array with a JSON string into a JSON object (ruby))我试图弄清楚我是如何做同样的事情。

简而言之,我将所有独立数组放在一个结构中,以便我可以将内容引用为object().nameobject().idobject().description

但是我现在错过了如何检查object数组是否有值" Mark"在name结构中。

我试过object.name.include?("Mark"),但它并不喜欢它。

我也试过使用has_value?,但这似乎也没有起作用(可能是因为在我将其导入结构之前它曾经是一个哈希,但现在不再是一个哈希 - 见这里:How do I convert an Array with a JSON string into a JSON object (ruby)

思考?如何检查object.name是否包含某个字符串?

感谢。

1 个答案:

答案 0 :(得分:0)

如果要查找名为Mark的所有客户,可以写下以下内容:

customers_named_mark = array_of_customers.select{|c| c.name == 'Mark' }

这将返回一个可能为空的数组。 如果要查找名为Mark的第一个客户,请写

customer_named_mark = array_of_customers.detect{|c| c.name == 'Mark' }

这将返回第一个匹配项或nil。