检查两个不同阵列中的各个匹配元素

时间:2016-09-06 19:58:05

标签: ruby-on-rails arrays ruby

我有这两个数组

arr1 = ["dog", "cat", "bird"]

arr2 = ["fish", "bear", "bird"]

注意唯一匹配的元素是" bird"来自两个阵列。我想找一个检查,说明是否有任何元素匹配返回true。

例如,这不起作用arr1.include?(arr2),但寻找将会发生的方法。

3 个答案:

答案 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。