Как найти значение в массиве ruby
Ответы
Nikolai Gagarinov
26 ноября 2021
Узнать, содержит ли массив значение можно методом 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
0
0