Я использую Ruby 2.4. Как проверить, удовлетворяют ли все элементы моего массива условием? У меня естьКак проверить, что все элементы массива удовлетворяют условию?
cond = true
arr.each do |e|
if e.nil? || e.to_i < 5
cond = false
break
end
end
но я чувствую, что есть более эффективный способ сделать это.
В качестве бонуса он работает с 'nil'. –
Да, это здорово :) – Ursus
Вопрос в том, «Как проверить, удовлетворяют ли все элементы моего массива условием?». Ваш ответ - это решение конкретного примера, данное OP, а не общее решение, поэтому оно имеет ограниченную полезность. Предположим, например, что все, что вы знаете, это то, что 'arr' представляет собой массив любых объектов, obj', которые могут включать' nil', и вам дается условие в виде метода 'm', который принимает' obj' как аргумент и возвращает 'true' или' false'. Тогда вы могли бы написать 'arr.all? {| obj | ! Obj.nil? && m (obj)} '. Этот комментарий относится и к другим ответам. –