直截了当,我创建了一个表单,允许用户插入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周加。谁能指导我通过一种更简单的方式?我几乎被这个惊呆了。
答案 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。