Javascript - 具有未确定数值的未确定数量的选项的排列/组合

时间:2012-04-20 20:38:28

标签: javascript permutation combinations

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

我正在试图找出一组未确定的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的$ .each for循环,那也没关系。提前谢谢!

1 个答案:

答案 0 :(得分:1)

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