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?
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 mutar a
, puedes escribir a | 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 mutar a
, usa a + 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:
>> a.map.with_index { |x, i| [x, i == a.size - 2 ? s.last : s.first] }.flatten[0..-2]
#=> ["Cat", "and", "Dog", "&", "Mouse"]