Как найти значение в массиве ruby? - ruby array find
2026-02-26 18:40 Diff

Узнать, содержит ли массив значение можно методом include?

a = [1,2,3,4,5] a.include?(3) # true a.include?(9) # false

С помощью метода find() (и его алиас detect())

И вернут первое значение, которое удовлетворяет условию в блоке. Если ничего не найдено, то вернется nil

(1..10).detect { |i| i % 5 == 0 and i % 7 == 0 } #=> nil (1..10).find { |i| i % 5 == 0 and i % 7 == 0 } #=> nil (1..100).detect { |i| i % 5 == 0 and i % 7 == 0 } #=> 35 (1..100).find { |i| i % 5 == 0 and i % 7 == 0 } #=> 35

Еще можно отфильтровать массив и взять первое значение, которое попадает к условию

array = [1,2,3] found = array.select {|e| e == 3} # [3] found = array.select {|e| e == 3}.first # 3