Comprobar si el valor existe en un array en Ruby

Stewart Nguyen 30 enero 2023
  1. Utilice la opción Array#include? Método para verificar si existe valor en Ruby Array
  2. Utilice la opción Array#any? Método para verificar si existe valor en Ruby Array
  3. Utilice el método Array#index para comprobar si existe valor en Ruby Array
Comprobar si el valor existe en un array en Ruby

En Ruby, un array es un tipo de datos común. Contiene elementos de varios tipos de datos, incluidos números, cadenas, booleanos e incluso otra matriz.

Es posible que necesitemos verificar si existe un valor en un array dada en algunas circunstancias. Este artículo muestra cómo hacerlo utilizando los métodos integrados del array.

Utilice la opción Array#include? Método para verificar si existe valor en Ruby Array

Array#include? parece ser la forma más sencilla de verificar si un valor reside dentro de un array.

Si un elemento está en un array, Array#include? devuelve true, de lo contrario false.

print(['ruby', 'sapphire', 'amber'].include?('ruby'))
print("\n")
print(['ruby', 'sapphire', 'amber'].include?('moonstone'))

Producción :

true
false

Utilice la opción Array#any? Método para verificar si existe valor en Ruby Array

También podríamos usar Array#any? en lugar de Array#include? para ver si un array contiene un valor. Porque Array#any? acepta un bloque, es ideal para la lógica de verificación compleja.

Devuelve true si el bloque devuelve un valor distinto de false o nil.

print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'moonstone' })
print("\n")
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'ruby' })

Producción :

false
true

El siguiente código usará any? para ver si un array contiene gemas con un tamaño superior a cuatro.

print(['ruby', 'sapphire', 'amber'].any? { |gem| gem.size > 4 })

Producción :

true

Utilice el método Array#index para comprobar si existe valor en Ruby Array

O toma un solo valor, como include? hace, o un bloque.

Array#index devuelve el índice del valor coincidente, de lo contrario devuelve nil, a diferencia de include? y any? que devuelven valores booleanos.

print(['ruby', 'sapphire', 'amber'].index { |gem| gem == 'ruby' })
print("\n")
print(['ruby', 'sapphire', 'amber'].index { |gem| gem.size > 10 })

Producción :

0
#returns nil

Artículo relacionado - Ruby Array