私はこのような配列のハッシュを持っています、次の形式で:取得する方法すべての可能な組み合わせが
[{a: 1, b: 3}, {a: 1, b: 4}, {a: 2, b: 3}, {a: 2, b: 4}]
ハッシュn
キーを有することができ、それぞれがm
値を持つことができる - 私は、任意の数を取ることができません。各値(配列)は異なるサイズを持つことができます。以下は、有効な入力である:
{a: [1, 2, 3], b: [4, 5, 6, 7], c: [8, 9, 10, 11, 12]}
は、私が得た最高のは、すべての値の順列ではなく、キーなしの配列です:
a = {a:[1, 2, 3], b: [4, 5, 6], c: [7, 8, 9]}
a.reduce([]) { |acc, (k, v)| acc.empty? ? v : acc.product(v) }.map(&:flatten)
=> [[1, 4, 7], [1, 4, 8], [1, 4, 9], [1, 5, 7], [1, 5, 8], [1, 5, 9], [1, 6, 7], [1, 6, 8], [1, 6, 9], [2, 4, 7], [2, 4, 8], [2, 4, 9], [2, 5, 7], [2, 5, 8], [2, 5, 9], [2, 6, 7], [2, 6, 8], [2, 6, 9], [3, 4, 7], [3, 4, 8], [3, 4, 9], [3, 5, 7], [3, 5, 8], [3, 5, 9], [3, 6, 7], [3, 6, 8], [3, 6, 9]]
私はRubyでこれを行う必要がありますどのように?
すべてのキーの配列の長さは同じですか? –
@ Md.FarhanMemonいいえ、それは異なる場合があります。 – pmichna
'h'があなたのハッシュである場合、この質問は配列' h.values'に関するものです。つまり、問題は配列に関するものですが、得られます。 –