Cualquier valor en común? se puede utilizar el operador de cruce: &
[ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ]
Si usted está buscando una intersección completa sin embargo (con duplicados) el problema es más complejo ya existe un desbordamiento de pila aquí: How to return a Ruby array intersection with duplicate elements? (problem with bigrams in Dice Coefficient)
O una rápida snippet que define "real_intersection" y valida la siguiente prueba
class ArrayIntersectionTests < Test::Unit::TestCase
def test_real_array_intersection
assert_equal [2], [2, 2, 2, 3, 7, 13, 49] & [2, 2, 2, 5, 11, 107]
assert_equal [2, 2, 2], [2, 2, 2, 3, 7, 13, 49].real_intersection([2, 2, 2, 5, 11, 107])
assert_equal ['a', 'c'], ['a', 'b', 'a', 'c'] & ['a', 'c', 'a', 'd']
assert_equal ['a', 'a', 'c'], ['a', 'b', 'a', 'c'].real_intersection(['a', 'c', 'a', 'd'])
end
end
qué te importa lo que los elementos que tiene en común? – Levi
No. Todo lo que quiero saber es si los dos tienen algún elemento en común. – Colen