新手问题 从每个数组中选一个,组合成一个新的数组的内建方法。

Alexander · April 25, 2013 · Last by Alexander replied at April 25, 2013 · 2467 hits

请问,实现下面功能的内建方法有吗?

def combine *arrays
  if arrays.length == 0
    yield []
  else
    arrays.pop.each do |n|
      combine *arrays do |x|
        yield x.push n
      end
    end
  end
end

combine %w{a b}, %w{A B} do |x| p x end
# result
# ["a", "A"]
# ["b", "A“]
# [”a", "B"]
# ["b", "B"]

zip 有点点像。但只能来一轮。

a,b = [%w(a b), %w(A B)]
a.product b
4 Floor has deleted

#3 楼 @Ddl1st good job. 排列组合都不成,这个应该叫乘积

#6 楼 @Ddl1st 额,好吧,犀利

You need to Sign in before reply, if you don't have an account, please Sign up first.