Combinar e intercalar dos matrices en Ruby
Tengo el siguiente código:
a = ["Cat", "Dog", "Mouse"]
s = ["and", "&"]
Quiero combinar la matriz s
en la matriz a
que me daría:
["Cat", "and", "Dog", "&", "Mouse"]
Buscando en los documentos de Ruby Array y Enumerable, no veo un método que haga esto.
¿Hay alguna manera de hacer esto sin iterar a través de cada matriz?
103
3
Puedes hacerlo con:
Esto no dará como resultado un array en el orden que Chris pidió, pero si el orden del array resultante no importa, puede usar
a |= b
. Si no quieres mutara
, puedes escribira | b
y asignar el resultado a una variable.Consulta la documentación sobre la unión de conjuntos para la clase Array en http://www.ruby-doc.org/core/classes/Array.html#M000275.
Esta respuesta asume que no quieres elementos de array duplicados. Si quieres permitir elementos duplicados en tu array final,
a += b
debería ser suficiente. De nuevo, si no quieres mutara
, usaa + b
y asigna el resultado a una variable.En respuesta a algunos de los comentarios de esta página, estas dos soluciones funcionan con arrays de cualquier tamaño.
No es precisamente elegante, pero funciona con matrices de cualquier tamaño: