Javascript-不确定数量的选项与不确定数量的值的排列/组合

Javascript-不确定数量的选项与不确定数量的值的排列/组合,javascript,permutation,combinations,Javascript,Permutation,Combinations,长期的读者,第一次在这里写作 我试图找出一组未知javascript数组的所有可能组合,但似乎找不到太多帮助 因此,如果您可以想象一组下拉列表(这是最终的用途),其中可能有用户定义的任意数量的下拉列表,并且每个下拉列表都有用户也定义的任意数量的可能值。(一次只能选择每个选项中的一个值。) 所以作为一个例子 var options = [ { label:"Colors", values:["red", "green", "blue", "etc"] }, { label

长期的读者,第一次在这里写作

我试图找出一组未知javascript数组的所有可能组合,但似乎找不到太多帮助

因此,如果您可以想象一组下拉列表(这是最终的用途),其中可能有用户定义的任意数量的下拉列表,并且每个下拉列表都有用户也定义的任意数量的可能值。(一次只能选择每个选项中的一个值。)

所以作为一个例子

var options = [
{
    label:"Colors", 
    values:["red", "green", "blue", "etc"]
},
{
    label:"Sizes",
    values:["small", "medium", "large", "xl", "etc"]
},
{
    label:"styles",
    values:["t-shirt", "v-neck", "hoodie", "vest", "etc"]
}
//and any number of options, with any numbers of values
];
现在,我需要生成所有可能的结果,从每个选项中选择一个值(如果解决方案可以有可选或不可选的选项,那么可能会设置为生成所有可能的组合,包括仅选择一个值)

所以我希望有一个像这样的解决方案

function combinations(options, option_optional){

}
如果只有唯一的组合,那么我可以建立这样的列表

如果选项是可选的:

[
    ["red"],
    ["red", "large"],
    ["red", "large", "tshirt"],
    ["large"],
    ["large", "t-shirt"]
等等

或者,如果必须选择所有选项:

[
    ["red", "large", "t-shirt"],
    ["red", "medium", "t-shirt"],
等等

我试图寻找其他的解决方案,但只能找到那些能提供所有可能组合的方案


非常感谢您的帮助,如果您更喜欢使用jquery的$。for循环,也可以。提前谢谢

几个月后再次回到这个问题,我在这里找到了问题的答案:

在几个月后再次回到这个问题,我在这里找到了问题的答案:

不错,但它只在一维数组上工作。我也尝试过,但我不够聪明,无法将解决方案的输出捕获到数组中。很好,但它只在一维数组上工作。我也尝试过,但我不够聪明,无法将解决方案的输出捕获到数组中。