7

我正在尝试比较两个 Ruby 数组以验证第一个数组的所有元素是否都包含在第二个数组中。(不需要反过来。)

例如:

a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]

这应该返回 true。

但是,我想不出一种方法可以让我做到这一点。任何帮助,将不胜感激!

4

2 回答 2

10

有很多方法可以检查相同的内容:

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
于 2013-06-29T05:59:23.873 回答
9

数组集逻辑在这里很好:

a & b == a

a & b生成一个新数组,其中包含 和 中存在的a元素b。然后,您可以对其进行测试a以确保横截面包含其a自身的所有元素。有关更多详细信息,请参阅Array#&上的手册条目。

于 2013-06-28T23:01:19.663 回答