Encuentra un valor en un array de Ruby

Nurudeen Ibrahim 18 abril 2022
Encuentra un valor en un array de Ruby

La mejor manera de encontrar un valor en un array de Ruby es utilizando el método find o detect; ambos son alias y se pueden usar indistintamente. Aceptan un argumento de bloque y devuelven el primer valor que satisface cualquier condición especificada en el bloque.

El siguiente ejemplo busca el número impar en un array de 2 a 4.

Código de ejemplo:

numbers = [2, 3, 4]
odd_number = numbers.find { |n| n.odd? }
puts odd_number

Producción :

3

Código de ejemplo:

numbers = [2, 3, 4]
odd_number = numbers.detect { |n| n.odd? }
puts odd_number

Producción :

3

Otra forma de encontrar un valor en un array es utilizando el método select.

Aunque no es eficiente, vale la pena mencionarlo. Es ineficiente porque itera a través de todal array que estamos buscando, independientemente de si el valor que buscamos está al principio o al final del array, a diferencia de find y detect que dejan de iterar tan pronto como encuentran el valor.

También vale la pena mencionar que el método select está diseñado para buscar múltiples valores y devolverlos como un array. Suponiendo que esperábamos varios números impares en el ejemplo anterior, la select habría sido un método preferido para usar.

Código de ejemplo:

numbers = [2, 3, 4, 5]
odd_numbers = numbers.select { |n| n.odd? }
puts odd_numbers

Producción :

[3, 5]

Artículo relacionado - Ruby Array