En este post veremos dos cosas con arreglos y Ruby: cómo saber si un elemento existe en un arreglo, y cómo buscar u obtener el índice de un elemento dentro de un arreglo.
Saber si un elemento existe es útil cuando estamos haciendo una lista de valores que no se repiten, y buscar el índice funciona para cuando necesitamos hacer algo con un elemento en caso de que no exista.
Veremos dos funciones con Ruby y arreglos: index
e include
.
Obtener índice o index de elemento en un arreglo
Para obtener la posición de un elemento dentro de un arreglo en Ruby, se usa a index
. Su uso es:
indice = arreglo.index(busqueda)
En caso de que exista, se devolverá un número indicando la posición (la cual comienza desde 0) y en caso de que no, se regresa nil
. Aquí un ejemplo:
arreglo = ["Ruby", "Perl", "C", "Go", "Rust"]
# index devuelve el índice (desde 0) o nil si no existe
busqueda = "Perl"
indice = arreglo.index(busqueda)
if indice
puts "El elemento #{busqueda} está en el índice #{indice}"
else
puts "No existe el elemento #{busqueda}"
end
Saber si elemento existe en arreglo con Ruby
Esta comprobación se podría hacer con el método index
, comprobando si el valor de retorno es nil
; pero estamos en Ruby y algunas cosas pueden ser elegantes así que usamos al método include
.
Su uso es:
existe = arreglo.include?(busqueda)
Aquí un ejemplo:
arreglo = ["Ruby", "Perl", "C", "Go", "Rust"]
# Si solamente se quiere comprobar si existe, usar include
busqueda = "C++"
if arreglo.include?(busqueda)
puts "El arreglo SÍ tiene el elemento #{busqueda}"
else
puts "El arreglo no incluye el elemento #{busqueda}"
end
En otras palabras, eso devuelve un booleano que podemos evaluar en un if
u otro lugar dependiendo de las necesidades.