Javascript 当您有多个条件时,编写更好/干净的IF语句的最佳方法是什么?
我想重构一些在一些遗留代码中遇到的Javascript 当您有多个条件时,编写更好/干净的IF语句的最佳方法是什么?,javascript,if-statement,refactoring,Javascript,If Statement,Refactoring,我想重构一些在一些遗留代码中遇到的if语句,使它们更易于阅读 例如: if (condition1 || condition2 || condition3 || condition4 || condition5 || condition6 || condition7) 我考虑将长条件列表存储在一个变量中,给它一个描述性名称,并在if语句中使用该变量名称。拥有可读的代码首先是一个表示问题 你能行 if((条件1) ||(条件2) ||(条件3) ||(条件4) ||(条件5) ||(条件6)
if
语句,使它们更易于阅读
例如:
if (condition1 || condition2 || condition3 || condition4 || condition5 || condition6 || condition7)
我考虑将长条件列表存储在一个变量中,给它一个描述性名称,并在
if
语句中使用该变量名称。拥有可读的代码首先是一个表示问题
你能行
if((条件1)
||(条件2)
||(条件3)
||(条件4)
||(条件5)
||(条件6)
) {
//有事要做。。。
}
或:(黑暗和晦涩的方法保留给恶魔编码师的成员)
开关(真){
案例(条件1):
案例(条件2):
案例(条件3):
案例(条件4):
案例(条件5):
案例(条件6):
//有事要做。。。
打破
}
[编辑]还可以使用缩进显示条件的层次结构:
if ( (condition1)
|| (condition2)
|| ( (condition3-1)
&& (condition3-2)
&& (condition3-3)
)
|| (condition4)
|| (condition5)
|| (condition6)
) {
// something to do...
}
拥有可读的代码首先是一个表示问题 你能行
if((条件1)
||(条件2)
||(条件3)
||(条件4)
||(条件5)
||(条件6)
) {
//有事要做。。。
}
或:(黑暗和晦涩的方法保留给恶魔编码师的成员)
开关(真){
案例(条件1):
案例(条件2):
案例(条件3):
案例(条件4):
案例(条件5):
案例(条件6):
//有事要做。。。
打破
}
[编辑]还可以使用缩进显示条件的层次结构:
if ( (condition1)
|| (condition2)
|| ( (condition3-1)
&& (condition3-2)
&& (condition3-3)
)
|| (condition4)
|| (condition5)
|| (condition6)
) {
// something to do...
}
我认为在这种情况下最好的方法是合并条件表达式。可以在一个函数中组合所有条件
function isConditionsCorrect() {
return (condition1)
|| (condition2)
|| (condition3)
|| (condition4)
|| (condition5)
|| (condition6);
}
if (isConditionsCorrect()) return 0;
我认为在这种情况下最好的方法是合并条件表达式。可以在一个函数中组合所有条件
function isConditionsCorrect() {
return (condition1)
|| (condition2)
|| (condition3)
|| (condition4)
|| (condition5)
|| (condition6);
}
if (isConditionsCorrect()) return 0;
如果你在多个地方使用这些条件,那么你的解决方案是好的。因此,它只会添加更多的代码。如果你有一个时间批评家算法,经常询问这个条件,你可以对这些条件进行排序,如果你知道一个条件通常是正确的,那么把它放在最开始的地方,而其他条件则不需要证明。如果使用&&than,则将通常为false的条件放在开头。在这种情况下,switch case语句可能更合适case@NataliaDuran一个描述性的名称仍然是一个好主意,即使您只使用了一次变量:-)如果您正在寻找更多的替代方案,请发布您的真实代码,以便我们可以提出适当的建议,这可能是特定于您的用例的。如果您在多个位置使用这些条件,您的解决方案是好的。因此,它只会添加更多代码如果您有一个时间批评家算法,其中经常会询问此条件,您可以对条件进行排序,如果你知道其中一个经常是真的,那就把它放在最开始的地方,其他的就不需要证明了。如果使用&&than,则将通常为false的条件放在开头。在这种情况下,switch case语句可能更合适case@NataliaDuran一个描述性的名称仍然是一个好主意,即使您只使用了一次变量:-)如果您正在寻找更多的替代方案,请发布您的真实代码,以便我们可以提出适当的建议,这可能是特定于您的用例的。不,请不要这样做。OP要求的是更干净的方式,而不是更模糊的方式。不,请不要这样做。OP要求的是更干净的方式,而不是更模糊的方式。