product(*lists) -> Array[permalink][rdoc][edit]product(*lists) { |e| ... } -> self-
レシーバの配列と引数で与えられた配列(複数可)のそれぞれから要素を1 個ずつとって配列とし、それらのすべての配列を要素とする配列を返します。
返される配列の長さは、レシーバと引数で与えられた配列の長さのすべての積になります。
- [PARAM]
lists: - 配列。複数指定可能。
p [1,2,3].product([4,5]) # => [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]] p [1,2].product([1,2]) # => [[1,1],[1,2],[2,1],[2,2]] p [1,2].product([3,4],[5,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]] p [1,2].product() # => [[1],[2]] p [1,2].product([]) # => []ブロックが与えられた場合、作成した配列の各要素を引数としてブロックを実行して self を返します。
例a = [] p [1,2,3].product([4,5]) {|e| a << e} # => [1,2,3] p a # => [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]] - [PARAM]