我正在尝试比较两个Ruby数组,以验证第一个数组的所有元素都包含在第二个数组中。 (不需要反向。)
例如:
a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
这应该返回true。
但是,我无法找到一种方法可以让我这样做。任何帮助将不胜感激!
答案 0 :(得分:9)
数组设置逻辑很不错:
a & b == a
a & b
生成一个新数组,其中包含a
和b
中存在的元素。然后,您可以针对a
对其进行测试,以确保横截面包含a
本身的所有元素。有关详细信息,请参阅Array#&上的手册条目。
答案 1 :(得分:9)
有很多方法可以检查相同的内容:
a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
(a - b).empty? # => true
a.all?{|i| b.include? i }
# => true
a = ["hello", "welcome"]
b = ["hello", "goodbye", "orange"]
(a - b).empty? # => false
a.all?{|i| b.include? i }
# => false