【发布时间】:2013-02-24 06:54:19
【问题描述】:
我在编写代码以在 JavaScript 中从 n 个数组和 m 个元素中生成组合时遇到了麻烦。我在其他语言中看到过类似的问题,但答案包含我不确定如何翻译的句法或库魔法。
考虑这些数据:
[[0,1], [0,1,2,3], [0,1,2]]
3 个数组,其中包含不同数量的元素。我想要做的是通过组合每个数组中的一个项目来获得所有组合。
例如:
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]]
任何帮助将不胜感激。
【问题讨论】:
-
找到组合的最简单方法stackoverflow.com/a/52098701/8024633
-
将Cartesian product of multiple arrays in JavaScript 链接为重复目标似乎是合理的。唯一的区别似乎是
cartesian([ [ 1, 2 ], [ "a", "b" ] ])与cartesian([ 1, 2 ], [ "a", "b" ]),但函数签名通常需要分别为cartesian(arrays)与cartesian(...arrays)。
标签: javascript permutation combinations