Method: Array#product
- Defined in:
- lib/core/facets/array/product.rb
#product(*enums) ⇒ Object
Provides the cartesian product of two or more arrays.
a = [1,2].product([4,5])
a #=> [[1, 4],[1, 5],[2, 4],[2, 5]]
CREDIT: Thomas Hafner
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/core/facets/array/product.rb', line 12 def product(*enums) enums.unshift self result = [[]] while [] != enums t, result = result, [] b, *enums = enums t.each do |a| b.each do |n| result << a + [n] end end end result end |