开门见山,我创建了一个表单让用户插入 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/