Javascript复杂的可能性

时间:2014-07-09 07:41:34

标签: 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选项名称,如添加材料:棉花,雪纺性别:男性,女性?

似乎不可能或有很多很多循环?我已经这样做了2周加。谁能指导我通过一种更简单的方式?我几乎被这个惊呆了。

1 个答案:

答案 0 :(得分:1)

如果使用递归函数,则只需要一个循环和一个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, []);

提供小提琴here