检查Ruby数组的元素是否包含在另一个数组中

Cod*_*ker 6 ruby arrays ruby-on-rails

我试图比较两个Ruby数组,以验证第一个数组的所有元素都包含在第二个数组中.(不需要反向.)

例如:

a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
Run Code Online (Sandbox Code Playgroud)

这应该返回true.

但是,我无法找到一种方法可以让我这样做.任何帮助,将不胜感激!

Chr*_*ald 9

数组设置逻辑很不错:

a & b == a
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,如果存在重复值,则不行.例如,`a = [1,1,2]; B = [1,2,3]; p a&b == a#=> false`因为`a&b == [1,2]`.根据重复问题的答案,`(ab).empty?`也许是一个更好的选择. (2认同)

Aru*_*hit 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
Run Code Online (Sandbox Code Playgroud)