我在JavaScript中遇到了一个问题,无法编写代码从n个包含m个元素的数组中生成组合。我看到过类似于其他语言的这种问题,但答案涉及我不知道如何翻译的语法或库魔法。
考虑以下数据:
[[0,1], [0,1,2,3], [0,1,2]]
有三个数组,它们中的元素数量不同。我的目标是通过组合每个数组中的一个元素来获取所有组合。
例如:
0,0,0 // item 0 from array 0, item 0 from array 1, item 0 from array 2
0,0,1
0,0,2
0,1,0
0,1,1
0,1,2
0,2,0
0,2,1
0,2,2
等等等等。
如果数组的数量是固定的,那么编写硬编码实现就很容易。但是数组的数量可能会变化:
[[0,1], [0,1]]
[[0,1,3,4], [0,1], [0], [0,1]]
任何帮助将不胜感激。
cartesian([ [ 1, 2 ], [ "a", "b" ] ])
与cartesian([ 1, 2 ], [ "a", "b" ])
,但函数签名显然需要分别为cartesian(arrays)
和cartesian(...arrays)
。 - Sebastian Simon