Javascript 重构这一系列if语句的最佳方法是什么?

Javascript 重构这一系列if语句的最佳方法是什么?,javascript,if-statement,refactoring,Javascript,If Statement,Refactoring,所以我有一大堆带单选按钮的问题,每个问题有三个选项可供选择。我有一堆If语句(很多),它们根据每个问题的答案确定最终答案 例如: Question 1 : a) b) c) Question 2 : d) e) f) Question 3 : g) h) i) 等等 国际单项体育联合会的声

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

例如:

Question 1 : 
           a)
           b)
           c)

Question 2 : 
           d)
           e)
           f)

Question 3 : 
           g)
           h)
           i)
等等

国际单项体育联合会的声明如下: 如果(问题1==a | |问题2==f和问题3==i)

如果我想以If语句的形式获取所有条件,那么它会占用太多的空间,而且可能不是最佳实践


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

如果选择的每一个组合都会导致一个独特的结果,那么你实际上看到的是一个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];

这是否是实现这一点的最佳方式值得怀疑,如果不了解您的逻辑,我们就不知道了。

我最终用switch语句和函数对其进行了重构。我相信我可以用更优雅的方式来做。如果我找到方法,我会更新答案

这在很大程度上取决于得出最终答案的逻辑。我们不知道……抽象地说,没有“最好”的方法。最好的解决方案将明显取决于选择之间的相互关系,它们所指的数据是什么,等等。它可能是嵌套的
如果
s,它可能是地图查找,它可能是聚合信息,…我建议使用可能的