【发布时间】:2022-01-08 09:31:45
【问题描述】:
我正在努力使用 Javascript 来查找具有 n 个深度的数组源的所有组合,该数组源被分成多个部分(以下示例中的 0、1 和 2)。我想以每种可能的组合结束 - 每个返回的数组应包含每个组中的一个且仅包含一个值。我已经将解决方案硬编码为 4 个级别,但需要更大的灵活性——递归提供的灵活性。我已经查看了lotsofpossiblerecursivesolutions,虽然我了解这些是如何工作的,但我只是不知道如何让这个特定的源数据工作。
sourceArr=[
[0,60,100]
,[0,60,200]
,[0,66,300]
,[1,69,500]
,[2,70,600]
,[2,70,700]
,[2,77,800]
,[2,77,900]
]
预期的返回值...
[
[{60,100],{69,500},{70,600}]
,[{60,100],{69,500},{70,700}]
,[{60,100],{69,500},{77,800}]
,[{60,100],{69,500},{77,900}]
,[{60,200],{69,500},{70,600}]
,[{60,200],{69,500},{70,700}]
,[{60,200],{69,500},{77,800}]
,[{60,200],{69,500},{77,900}]
,[{66,300],{69,500},{70,600}]
,[{66,300],{69,500},{70,700}]
,[{66,300],{69,500},{77,800}]
,[{66,300],{69,500},{77,900}]
]
【问题讨论】:
-
我不明白
sourceArr和预期输出之间的逻辑关系 -
如果你也包含你的代码会很好,即使它不起作用。
-
@NinaScholz:你不需要它,但递归是编写笛卡尔积函数的一种有用方法。另请注意,例如,第一个链接中的your generally useful answer 可能不起作用,因为它会造成不必要的扁平化。
标签: javascript arrays recursion nested nested-loops