La estructura de datos que ya tiene es perfecto, simplemente marque la intersección:
(a1 & a2) == a1
Actualización: El comentario discutiendo p las modificaciones son interesantes y creativas, pero bastante incorrectas ya que los implementadores de Ruby anticiparon esta preocupación y especificaron que el orden del resultado es el orden de a1
. Entonces esto funciona, y continuará funcionando en el futuro. (Las matrices son estructuras de datos ordenadas, no conjuntos. No se puede simplemente permutar el orden de una operación de matriz.)
Me gusta más la respuesta de Dave Newton para la frialdad, pero esta respuesta también funciona, y como la de Dave, es también núcleo Ruby.
¿Realmente significa estructura de datos? – Flexoid
Quizás. Arrays y Hashes son estructuras de datos ¿verdad? – MxyL
Oh, * qué estructura. Lo mejor es, probablemente, los conjuntos, ya que los conjuntos son buenos, pero como muestra la variedad de respuestas (y hay aún más opciones), puede que no importe, dependiendo de sus necesidades. –