本文简要介绍ruby语言中 Array.product
的用法。
用法
product(*other_arrays) → new_array
product(*other_arrays) {|combination| ... } → self
计算并返回或产生所有数组中的所有元素组合,包括 self
和 other_arrays
。
-
组合的数量是所有数组大小的乘积,包括
self
和other_arrays
。 -
返回组合的顺序是不确定的。
当没有给出块时,将组合作为数组数组返回:
a = [0, 1, 2]
a1 = [3, 4]
a2 = [5, 6]
p = a.product(a1)
p.size # => 6 # a.size * a1.size
p # => [[0, 3], [0, 4], [1, 3], [1, 4], [2, 3], [2, 4]]
p = a.product(a1, a2)
p.size # => 12 # a.size * a1.size * a2.size
p # => [[0, 3, 5], [0, 3, 6], [0, 4, 5], [0, 4, 6], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6]]
如果任何参数是空数组,则返回一个空数组。
如果没有给出参数,则返回一个由 1 元素数组组成的数组,每个数组都包含 self
的一个元素:
a.product # => [[0], [1], [2]]
当给定一个块时,将每个组合产生为一个数组;返回 self
:
a.product(a1) {|combination| p combination }
输出:
[0, 3]
[0, 4]
[1, 3]
[1, 4]
[2, 3]
[2, 4]
如果任何参数是空数组,则不调用该块:
a.product(a1, a2, []) {|combination| fail 'Cannot happen' }
如果没有给出参数,则将 self
的每个元素生成为 1 元素数组:
a.product {|combination| p combination }
输出:
[0]
[1]
[2]
相关用法
- Ruby Array.product()用法及代码示例
- Ruby Array.prepend用法及代码示例
- Ruby Array.push用法及代码示例
- Ruby Array.pack()用法及代码示例
- Ruby Array.permutation()用法及代码示例
- Ruby Array.pack用法及代码示例
- Ruby Array.permutation用法及代码示例
- Ruby Array.pop用法及代码示例
- Ruby Array.hash用法及代码示例
- Ruby Array.to_a用法及代码示例
- Ruby Array.to_h用法及代码示例
- Ruby Array.to_s用法及代码示例
- Ruby Array.array + other_array用法及代码示例
- Ruby Array.take()用法及代码示例
- Ruby Array.reject!用法及代码示例
- Ruby Array.flatten!用法及代码示例
- Ruby Array.reject用法及代码示例
- Ruby Array.repeated_permutation()用法及代码示例
- Ruby Array.index()用法及代码示例
- Ruby Array.rassoc(obj)用法及代码示例
- Ruby Array.values_at()用法及代码示例
- Ruby Array.each用法及代码示例
- Ruby Array.fetch用法及代码示例
- Ruby Array.flatten用法及代码示例
- Ruby Array.sort用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Array.product。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。