ruby array (enumerable) method to select and reject into 2 arrays in 1 operation
enumerable, ruby, ruby-on-rails
Solution
Sure, you can do:
odd, even = list.partition &:odd?
Problem
``` # this code works list = (0..20).to_a # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] odd = list.select { |x| x.odd? } # => [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] list.reject! { |x| x.odd? } # => [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20] # but can i emulate this type of functionality with an enumerable method? set = [1,5,10] # => [1, 5, 10] one, five, ten = set # => [1, 5, 10] one # => 1 five # => 5 ten # => 10 # ------------------------------------------------ # method I am looking for ? list = (0..20).to_a odd, even = list.select_with_reject { |x| x.odd? } # put the matching items into the first variable # and the non-matching into the second ```