Javascript 重构这一系列if语句的最佳方法是什么?
所以我有一大堆带单选按钮的问题,每个问题有三个选项可供选择。我有一堆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) 等等 国际单项体育联合会的声
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,它可能是地图查找,它可能是聚合信息,…我建议使用可能的