JavaScript Multiply条件语句

时间:2013-07-04 04:56:26

标签: javascript jquery user-interface

我有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#可用于通过异步调用

形成此号码

1 个答案:

答案 0 :(得分:0)

这样的事可能吗?

var fs = [
  [function () { ReportNumDrop == 0 && IsDropDownValue == 0 }, 1034],
  [function () { ReportNumDrop == 0 && IsDropDownValue != 0 }, 1033],
  ...
];

然后遍历此数组以查找具有返回true的函数的元素。