我正在尝试比较两个 Ruby 数组以验证第一个数组的所有元素是否都包含在第二个数组中。(不需要反过来。)
例如:
a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
这应该返回 true。
但是,我想不出一种方法可以让我做到这一点。任何帮助,将不胜感激!
我正在尝试比较两个 Ruby 数组以验证第一个数组的所有元素是否都包含在第二个数组中。(不需要反过来。)
例如:
a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
这应该返回 true。
但是,我想不出一种方法可以让我做到这一点。任何帮助,将不胜感激!
有很多方法可以检查相同的内容:
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
数组集逻辑在这里很好:
a & b == a
a & b
生成一个新数组,其中包含 和 中存在的a
元素b
。然后,您可以对其进行测试a
以确保横截面包含其a
自身的所有元素。有关更多详细信息,请参阅Array#&上的手册条目。