Как использовать метод .select в Ruby
Ответы
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