1

长期读者,第一次在这里作家。

我试图找出一组未确定的 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"]

ETC...

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

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

等等

我尝试查看其他解决方案,但只能找到能够返回所有可能组合的解决方案。

任何帮助表示赞赏,如果您更喜欢使用 jquery 的 $.each for 循环,那也很好。提前致谢!

4

1 回答 1

1

几个月后再次回到这个问题后,我在这里找到了我的问题的答案: https ://stackoverflow.com/questions/4796678/javascript-golf-cartesian-product?lq=1

于 2012-07-11T18:14:53.407 回答