2013-02-02 141 views
0

我有两个数组。Ruby如何检查一个数组中的字符串是否是另一个数组中的对象属性?

一个被命名为食物,它是一串字符串。

另一个被命名为dataList。它是一个包含名为name的属性的对象数组。

我需要做的是检查数组食物中的名称是否存在于dataList中。这意味着食物中的所有物品都必须与dataList中的其中一个名称属性相同。

我知道如何检查数组是否包含相同类型的数据。但我不知道如何做到这一点。

回答

0

由于我们不关心元素的顺序,也不关心元素存在的次数,所以我们可以使用Sets轻松完成此操作。

require 'set' 

foods_set = Set.new(foods) 

attribute_names_set = Set.new 
dataList.each do |d| 
    attribute_names_set << d.name 
end 

return foods_set == attribute_names_set 
+0

谢谢你。我是Ruby的新手,我没有考虑过套路。我会更多地阅读。 再次感谢您的帮助! – lettuceman44

+0

该解决方案有效。我唯一需要改变的是return foods_set == attribute_names_set 应该是 return foods_set.subset? attribute_names_set 感谢您的帮助! – lettuceman44

相关问题