Как использовать метод .select в Ruby

Аватар пользователя Nikolai Gagarinov
Nikolai Gagarinov
22 февраля 2022

Метод select() похож на filter, find_all, это алиасы, т.е. один метод с разным именем. Но мемантически метод означает "выбрать элементы по критерию".

Например, Если нам нужно выбрать все четные числа, то будем делать такой вызов

numbers = [1, 2, 3, 4, 5]

pp numbers.select(&:even?)
# => [2, 4]

pp numbers.select {|n| n % 2 == 0}

Метод вызывается у перечислимых данных, вместе с блоком, в который передается элемент. Сам блок бложен вернуть true/false (или эквивалент им) значение, чтобы отсеять лишние элементы. Вызов метода вместе с блоком вернет новый массив (или перечеслимое значение), которым можно будет воспользоваться.

numbers = [1, 2, 3, 4, 5]

even_numbers = numbers.select(&:even?)
0 0

Похожие вопросы