本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。