Javascript 如何优化嵌套if?
嗨,我想知道有没有更好的方法?条件a比b更重要,b比c更重要,等等Javascript 如何优化嵌套if?,javascript,Javascript,嗨,我想知道有没有更好的方法?条件a比b更重要,b比c更重要,等等 var slot=condition\u a 如果(!插槽){ 槽=条件 如果(!插槽){ 槽=条件c 如果(!插槽){ 插槽=状态\u d 如果(!插槽){ 槽=条件 } } } } 如果(插槽){ //做点什么 } 您可以执行以下操作: 这相当于您的代码。如果条件的计算结果为true,则不检查以下条件(称为)。这样就可以进行如下检查: if (a===null || a.b===0) { 请注意,在同一个地方有如此多的条件
var slot=condition\u a
如果(!插槽){
槽=条件
如果(!插槽){
槽=条件c
如果(!插槽){
插槽=状态\u d
如果(!插槽){
槽=条件
}
}
}
}
如果(插槽){
//做点什么
}
您可以执行以下操作:
这相当于您的代码。如果条件的计算结果为true
,则不检查以下条件(称为)。这样就可以进行如下检查:
if (a===null || a.b===0) {
请注意,在同一个地方有如此多的条件看起来像是代码气味:可能有些东西在语义上设计得不够。如果您需要
插槽
来有一个值(而不仅仅是在最后使用它来测试条件)
您也可以像这样使用
|
条件
slot = condition_a||condition_b||condition_c||condition_d;
示例不确定这为什么会被否决,这似乎是一个完全正确的答案。我没有否决,但我认为他想要
如果(!条件| a | | |!条件| b | e)
@JaromandaX read OP,他正在检查slot
的负片,而不是slot
本身。@gurvinder372-刷一下你的电脑logic@gurvinder372他正在检查插槽的负片,只是想看看是否需要检查另一个条件。你没有看到之前相同的答案吗?@DenysSéguret-没有,请给我一个以前相同的答案,让我知道你有机会赢得大奖prizes@Jaromanda是的,谢谢这正是我做这件事的方式。变量槽=(a | | b | c);if(slot){slot.dosomething()};没有比这更好的办法了。你所做的一切都是正确的。不,我25岁了。只是学习一种爱好。@JaydipJadhav-这里有3个答案更简洁,如果你知道javascript,即使是中级代码,也更容易阅读?关于这个问题的链接文章对有条件的绩效进行了相当好的分类(但可能已经过时)。
var slot = condition_a || condition_b || condition_c || condition_d || condition_e;
if (slot) {
// do soemthing
}
slot = condition_a||condition_b||condition_c||condition_d;