Javascript 复杂的可能性

标签 javascript regex logic

开门见山,我创建了一个表单让用户插入 2 个项目(选项名称、选项值) 插入号码是动态的如:

  **Option Name**         **Option Value**
      Color                     Red
                                Blue
                               Yellow
      Size                       L
                                 M

我需要填充用户给出的可能性表,如下所示:

 **Color**              **Size**
    Red                    L
    Red                    M
    Blue                   L
    Blue                   M ....etc

我如何编写一个 javascript 逻辑来做到这一点?最糟糕的问题是,如果用户输入 3 或 4 个选项名称,如添加 Material :棉、雪纺,性别:男、女?

好像是不可能的还是循环了很多很多?我已经这样做了 2 周多了。任何人都可以通过更简单的方式指导我吗?我几乎被这一点惊呆了。

最佳答案

如果使用递归函数,不管有多少选项,只需要一个循环和一个if-else语句:

var options = [{
    name: "Color",
    values: ["Red", "Blue"]
}, {
    name: "Size",
    values: ["M", "L"]
}, {
    name: "Sex",
    values: ["Male", "Female"]
}];

function list(options, result) {
    if (options.length > 0) {
        var option = options[0];
        var remaining = options.slice(1);

        for (var i = 0; i < option.values.length; i++) {
            var current = result.slice(0);
            current.push(option.values[i]);

            list(remaining, current);
        }
    } else {
        document.body.innerHTML += result.join(", ");
        document.body.innerHTML += "<br/>";
    }
}

list(options, []);

fiddle 可用 here .

关于Javascript 复杂的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24647958/

相关文章:

Javascript indexOf 用于未找到数组的数组数组

javascript - 我的 Bootstrap Modal ANCHOR 在菜单(导航栏)的行元素中不起作用

ruby - 是否可以使这个 ruby​​ 正则表达式代码更短?

python - 如何使用 python 正确检查此正则表达式

javascript - 得到最好的正方形排列

python - 表示蜂窝格子的最佳方式是什么?

javascript - serviceWorker 'activate' 和 'message' 事件未触发

javascript - 函数名, "onButtonClick"或 "onClickButton"

javascript - 用于控制 &lt;input&gt; 元素之间的空白的棘手 javascript/jquery/YUI 问题

python - 从列表中删除镜像对立面的最快方法