Возвращает true, только если все значения оцениваются в true в Ruby
Как быстро проверить, удовлетворяют ли все элементы перечисляемого некоторому условию? Я думаю, логически это было бы так:
elements = [e1, e2, e3, ...]
return (condition on e1) && (condition on e2) && (condition on e3) && ...
например, если бы у меня был массив целых чисел, и я хотел ответить на вопрос "все ли целые числа Нечетные?"
Я всегда могу перебирать каждое значение, проверять, верно ли это, а затем возвращать false, когда один из них возвращает false, но есть ли лучший способ сделать это?
1 ответов
можно использовать all?
функция из перечисляемого mix-in.
elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
return elements.all? { |elem| elem % 2 != 0 }
или, как указано в комментариях, вы также можете использовать odd?
Если вы ищете конкретно нечетные значения.
elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
return elements.all?(&:odd?)