Возвращает true, только если все значения оцениваются как true в Ruby
Какой быстрый способ проверить, удовлетворяют ли все элементы перечислимого определенного условия? Я предполагаю, что это логично:
elements = [e1, e2, e3, ...]
return (condition on e1) && (condition on e2) && (condition on e3) && ...
Например, если у меня был массив целых чисел, и я хотел ответить на вопрос "Все ли целые числа нечетные?"
Я всегда могу перебирать каждое значение, проверять, является ли оно true, а затем возвращать false, когда один из них возвращает false, но есть ли лучший способ сделать это?
Ответы
Ответ 1
Вы можете использовать функцию all?
из перемешивания Enumerable.
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?)