【发布时间】:2019-10-15 19:10:57
【问题描述】:
在将很长的 if/else if/else 语句更改为 switch case 语句时,我需要帮助。从概念上讲,我不确定应该在 switch 表达式中添加什么
if (!$jq('*').hasClass("answerPick")) {
// if nothing is selected
finalURL= "productResults.aspx?N=1320325";
}
else if (q1 === undefined && q2 === undefined && q3Multi === undefined) {
// if q1 a2 and q3 arent selected
finalURL= "productResults.aspx?N=1320325+" + q4Multi.join('+');
}
else if (q1 != undefined && q2 === undefined && q3Multi === undefined) {
// if q1 a2 and q3 arent selected
finalURL= "productResults.aspx?N=1320325+" q15 + q4Multi.join('+');
}
else if (q1 === undefined && q2 === undefined) {
// if q1 and q2 arent selected
finalURL= "productResults.aspx?N=1320325+" + q3Multi + q4Multi.join('+');
}
else if (q2 === undefined && q1 != undefined) {
// if only q2 is left unselected
finalURL = "productResults.aspx?N=" + q15 + q3Multi + q4Multi.join('+');
}
else if (q2 === undefined && q3Multi === undefined) {
// if only q1 is selected
finalURL = "productResults.aspx?N=" + q15;
}
else{
// if everything is selected
finalURL = "productResults.aspx?N=" + q2 + q3Multi + q4Multi.join('+');
}
switch(expression) {
case n:
code block
break;
case n:
code block
break;
default:
default code block
}
请让我知道我应该包括的其他任何内容。我认为我错过了一些非常明显的东西,但从概念上讲它并没有点击。
【问题讨论】:
-
switch用于针对多个值测试单个表达式。这不合适。 -
如果要简化,可以使用嵌套测试。
-
您可以使用
switch (true),然后使用case q1 === undefined && q2 === undefined && q3Multi === undefined:,但这并不是对任何事情的简化。 -
非常感谢 Barmar。
标签: javascript if-statement switch-statement