过滤数组

通常我们只想对满足特定条件的数组元素进行操作:

选择

将返回与特定条件匹配的元素

array = [1, 2, 3, 4, 5, 6]
array.select { |number| number > 3 } # => [4, 5, 6]

拒绝

将返回与特定条件不匹配的元素

array = [1, 2, 3, 4, 5, 6]
array.reject { |number| number > 3 } # => [1, 2, 3]

#select#reject 都返回一个数组,因此它们可以被链接:

array = [1, 2, 3, 4, 5, 6]
array.select { |number| number > 3 }.reject { |number| number < 5 }
  # => [5, 6]