Toute valeur en commun? vous pouvez utiliser l'opérateur d'intersection: &
[ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ]
Si vous êtes à la recherche d'une intersection complète cependant (avec doublons) le problème est plus complexe il y a déjà un débordement de pile ici: How to return a Ruby array intersection with duplicate elements? (problem with bigrams in Dice Coefficient)
Ou un snippet rapide qui définit "real_intersection" et valide le test suivant
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
-vous soin quels sont les éléments qu'il a en commun? – Levi
Non. Tout ce que je veux savoir, c'est si les deux ont des éléments communs. – Colen