Agregar y eliminar elementos de un arreglo en Ruby

Eliminar y agregar elementos a arreglo en Ruby

Hoy veremos algunas operaciones básicas con arreglos en Ruby. Se trata de agregar (operación push) elementos a un arreglo existente, así como de eliminar (pop o unshift) elementos de un arreglo a través del índice.

Los arreglos funcionan cuando tenemos que guardar una lista de elementos en memoria y se necesita manipularla.

Agregar y eliminar elementos de un arreglo en Ruby
Agregar y eliminar elementos de un arreglo en Ruby

Con Ruby hay muchas formas de agregar o quitar elementos de arreglos, veremos muchas de ellas.

Lecturas recomendadas

Sé que no tiene nada que ver con Ruby, pero te invito a ver un ejemplo de pilas en C.

Agregar elementos a arreglo

Para añadir un elemento a un arreglo se pueden usar los métodos que se ven abajo. Algunos ejemplos de uso están al final de este apartado, antes de ver cómo se eliminan elementos de un arreglo.

unshift

El método unshift agrega el elemento al inicio del arreglo y recorre los demás a la derecha.

push

Es como unshift pero ahora pone el elemento al final y agranda el arreglo.

insert

Permite insertar uno o más elementos a un arreglo, pero ahora se puede especificar la posición en donde se va a insertar.

Operador <<

Este operador que fue usado al trabajar con CSV también se puede usar en los arreglos y funciona de manera similar a push.

Ejemplo de uso

Aquí el código en donde se agregan elementos a un arreglo de 4 formas distintas:

arreglo = ["Ruby", "Perl", "C", "Go", "Rust"]
=begin
	Comenzamos viendo cómo agregar elementos
	al arreglo, expongo 4 formas
=end

# Para agregar elementos podemos usar unshift, push, insert o <<

# unshift pone un elemento al inicio
arreglo.unshift("Python")
puts "Después de unshift es #{arreglo}"

# push al final
arreglo.push("C++")
puts "Después de push es #{arreglo}"

# Insert permite insertarlo en determinada posición, además de
# que permite insertar varios
arreglo.insert(1, "JavaScript", "PHP") # Ponerlos desde la posición 1
puts "Después de insert es #{arreglo}"

# Y finalmente, << funciona como push
arreglo << "Kotlin"
puts "Después de << es #{arreglo}"

Quitar elementos de un arreglo

Ahora veamos la operación inversa de agregar elementos a un arreglo, la cual es quitar o eliminar elementos de un arreglo.

Para esto existen 4 formas, y ahora vamos a verlas.

pop

Quita el último elemento del arreglo

shift

Quita el primer elemento del arreglo

delete_at

Quita un elemento pero basado en su índice

delete

Quita un elemento pero basado en su valor (qué bonita función, se extraña mucho en otros lenguajes); por cierto, quita todas las ocurrencias.

Ejemplos de quitar elementos a un arreglo

Aquí está el código de ejemplo:

=begin
	Ahora veamos cómo eliminar elementos
	de un arreglo, expongo 4 formas
=end

# pop quita el último, es como las operaciones con pilas
arreglo.pop
puts "Después de pop es #{arreglo}"

# shift es lo contrario de unshift, elimina el primer elemento
arreglo.shift
puts "Después de shift es #{arreglo}"

# delete_at elimina en un índice en particular
arreglo.delete_at 7
puts "Después de delete_at es #{arreglo}"

# Y finalmente, delete elimina no usando el índice,
# sino el valor. Por cierto, elimina todas las ocurrencias
arreglo.delete "Perl"
puts "Después de delete es #{arreglo}"

Poniendo todo junto

Si quieres, descarga el código, instala Ruby y ejecuta ruby main.rb .

Mira más sobre Ruby.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *