# 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,19] list.reject! { |x| x.odd? } # => [0,20] # but can i emulate this type of functionality with an enumerable method? set = [1,10] # => [1,10] one,five,ten = set # => [1,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
解决方法
当然,你可以这样做:
odd,even = list.partition &:odd?