我有这两个数组
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
注意唯一匹配的元素是" bird"来自两个阵列。我想找一个检查,说明是否有任何元素匹配返回true。
例如,这不起作用arr1.include?(arr2)
,但寻找将会发生的方法。
答案 0 :(得分:3)
我找到了一个很好的方法:
(arr1 & arr2).any?
&
是一个逻辑运算符,如果两个数组中都存在某些元素,则会返回这些元素。
any?
检查数组中是否存在任何元素。如果至少存在一个,则返回true
。
答案 1 :(得分:1)
arr1.any? { |item| arr2.include?(item) }
这将检查第一个数组中的任何项是否包含在第二个数组中。
答案 2 :(得分:1)
您可以通过两个数组之间的交集执行此操作,然后我们可以检查结果中是否存在任何匹配元素。
(arr1 & arr2).present?
在你的情况下我们有
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
结果可以是这样的:
(arr1 & arr2).present?
它将返回['bird']
,所以它不是空的和现在的?将返回true。