我有js函数从乘法参数中选择报告编号(2个复选框,3个下拉字段),我得到了一个非常大的条件声明
switch(ReportNumDrop)
{
case 0: NumberReport = IsDropDownValue == 0 ? 1034: 1033;
break;
case 1: if(CheckBoxChecked)
{
NumberReport = IsDropDownValue == 0 ? 1022: 1021;
}
else
{
NumberReport = IsDropDownValue == 0 ? 1011: 1012;
}
break;
....
//SimilarStatement with another rep number
....
case 6: if(DropDownCondition2)
{
NumberReport = SecondDropDownValue == '*' ? 1045: 1044;
}
else
{
NumberReport = ThirdDropDownValue == 0 ? 1055: 1054;
}
break;
default: break;
}
所以,它就像有限状态图,但是最简单的重构方法是什么,所以它可以从眼睛的血液中读取。
(我认为它类似于GOF的命令模式)
此外,代码不是我的
P.S C#可用于通过异步调用
形成此号码答案 0 :(得分:0)
这样的事可能吗?
var fs = [
[function () { ReportNumDrop == 0 && IsDropDownValue == 0 }, 1034],
[function () { ReportNumDrop == 0 && IsDropDownValue != 0 }, 1033],
...
];
然后遍历此数组以查找具有返回true
的函数的元素。