重构这些if语句的最佳方法是什么?

时间:2015-07-27 12:56:08

标签: javascript if-statement refactoring

所以我有一堆关于单选按钮的问题,每个问题都有三个选项可供选择。我有一堆If语句(其中很多)根据每个问题的答案确定最终答案。

例如:

Question 1 : 
           a)
           b)
           c)

Question 2 : 
           d)
           e)
           f)

Question 3 : 
           g)
           h)
           i)

等等。

if语句如下: if(问题1 == a ||问题2 == f&& Question 3 == i)

如果我想以if语句的形式获得所有条件,那么它需要太多空间而且可能不是最佳实践。

重构所有这些if语句的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

如果每一个选择组合都会产生独特的结果,那么你实际上是在看一个n维矩阵。简单来说,将每个选项视为数组中路径的一个步骤:

$outcomes = array(
    'a' => array(
        'd' => array(
            'g' => 'Outcome 1',
            'h' => 'Outcome 2',
            'i' => 'Outcome 3'
        ),
        'e' => array(..),
        ..
    'b' => array(..),
    ..
);

echo 'The outcome is: ', $outcomes[$question1][$question2][$question3];

这实际上是否是实现这一目标的最佳方式是值得怀疑的,我们不知道更多关于你的逻辑的事情。

答案 1 :(得分:0)

我最终用switch语句和函数重构它。我相信我能做到更优雅的方式。如果我找到方法,将更新答案。