计算阵列数组上的阵列产品

时间:2013-02-03 01:29:24

标签: ruby arrays

为了在Ruby中计算笛卡尔积,可以使用Array#product,如果我有一个数组数组并想要计算产品,语法是怎样的?

[[1,2],[3,4],[5,6]] => [[1,3,5], [2,3,5], ...]

我不确定,因为在Ruby文档中,product方法定义了任意数量的参数,所以只需将我的数组数组作为参数传递,如下所示:

[].product(as) => [

不够。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

该方法采用多个参数,但不包含包含参数的数组。所以你必须以这种方式使用它:

[1,2].product [3,4], [5,6]

如果as是您的数组数组,则必须像这样“splat”它:

as[0].product(*as[1..-1])

答案 1 :(得分:0)

我得到的最接近的符号是:

:product.to_proc.call(*as)

# shorthand
:product.to_proc.(*as)