Ruby ofrece varias maneras de combinar arreglos, cada una con sus propias características. Esta guía explora los métodos más comunes y eficientes, proporcionando ejemplos para ilustrar su comportamiento.
Tabla de Contenidos
- Fusionar Arreglos con
concat
- Fusionar Arreglos con el Operador
+
- Fusionar Arreglos con
push
y el Operador Splat - Fusionar Arreglos con
append
- Fusionar Arreglos con
union
- Fusionar Arreglos con el Operador
|
- Conclusión
1. Fusionar Arreglos con concat
El método concat
modifica el arreglo original añadiendo los elementos de otro arreglo a su final. Es una operación in situ, alterando directamente el arreglo al que se llama.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.concat(array2)
puts array1 # Salida: [1, 2, 3, 4, 5, 6]
puts array2 # Salida: [4, 5, 6] (array2 permanece sin cambios)
2. Fusionar Arreglos con el Operador +
El operador +
crea un arreglo nuevo que contiene todos los elementos de ambos arreglos. Los arreglos originales permanecen intactos.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
merged_array = array1 + array2
puts merged_array # Salida: [1, 2, 3, 4, 5, 6]
puts array1 # Salida: [1, 2, 3] (array1 permanece sin cambios)
puts array2 # Salida: [4, 5, 6] (array2 permanece sin cambios)
3. Fusionar Arreglos con push
y el Operador Splat
El método push
añade elementos al final de un arreglo. El operador splat (*
) desempaqueta otro arreglo, permitiendo añadir todos sus elementos a la vez. Esto, al igual que concat
, modifica el arreglo original.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.push(*array2)
puts array1 # Salida: [1, 2, 3, 4, 5, 6]
puts array2 # Salida: [4, 5, 6] (array2 permanece sin cambios)
4. Fusionar Arreglos con append
El método append
es un sinónimo de push
; funcionan de manera idéntica.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.append(*array2)
puts array1 # Salida: [1, 2, 3, 4, 5, 6]
puts array2 # Salida: [4, 5, 6] (array2 permanece sin cambios)
5. Fusionar Arreglos con union
El método union
(o su alias, el operador |
) devuelve un arreglo nuevo que contiene solo los elementos únicos de ambos arreglos de entrada. Los elementos duplicados son eliminados.
array1 = [1, 2, 3, 3]
array2 = [3, 4, 5]
merged_array = array1.union(array2)
puts merged_array # Salida: [1, 2, 3, 4, 5]
puts array1 # Salida: [1, 2, 3, 3] (array1 permanece sin cambios)
puts array2 # Salida: [3, 4, 5] (array2 permanece sin cambios)
6. Fusionar Arreglos con el Operador |
Esta es una forma abreviada del método union
, produciendo el mismo resultado.
array1 = [1, 2, 3, 3]
array2 = [3, 4, 5]
merged_array = array1 | array2
puts merged_array # Salida: [1, 2, 3, 4, 5]
puts array1 # Salida: [1, 2, 3, 3] (array1 permanece sin cambios)
puts array2 # Salida: [3, 4, 5] (array2 permanece sin cambios)
7. Conclusión
Ruby proporciona diversos métodos para la fusión de arreglos, permitiendo seleccionar el enfoque óptimo según las necesidades específicas. Considere si se requiere una modificación in situ o un nuevo arreglo y si se deben preservar los elementos duplicados. Para crear nuevos arreglos, el operador +
y el método union
generalmente ofrecen una mejor legibilidad. concat
y push
son eficientes para modificar arreglos directamente. Comprender estos matices asegura la escritura de código Ruby claro y eficiente.