2010-08-20 15 views
43

¿Hay alguna forma de comparar dos matrices y mostrar qué es común a ambas?Encontrar lo que es común en dos matrices

array1 = ["pig", "dog", "cat"] 
array2 = ["dog", "cat", "pig", "horse"] 

¿Qué me escriba para demostrar que ["pig", "dog", "cat"] son comunes entre estas dos matrices?

Respuesta

102

Puede intersectar las matrices usando &:

array1 & array2 

Esto devolverá ["pig", "dog", "cat"].

+0

Para otras operaciones sobre conjuntos, como la unión y división, ver el ['Set'] (http://ruby-doc.org/stdlib-2.3.3/libdoc/set/rdoc/Set.html) clase. –

1

Establecer intersección. Devuelve una nueva matriz que contiene elementos comunes a las dos matrices, sin duplicados, como:

["pig", "dog", "bird"] & ["dog", "cat", "pig", "horse", "horse"] 
# => ["pig", "dog"] 

También puede leer un post sobre Array coherences