Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何优化嵌套if?_Javascript - Fatal编程技术网

Javascript 如何优化嵌套if?

Javascript 如何优化嵌套if?,javascript,Javascript,嗨,我想知道有没有更好的方法?条件a比b更重要,b比c更重要,等等 var slot=condition\u a 如果(!插槽){ 槽=条件 如果(!插槽){ 槽=条件c 如果(!插槽){ 插槽=状态\u d 如果(!插槽){ 槽=条件 } } } } 如果(插槽){ //做点什么 } 您可以执行以下操作: 这相当于您的代码。如果条件的计算结果为true,则不检查以下条件(称为)。这样就可以进行如下检查: if (a===null || a.b===0) { 请注意,在同一个地方有如此多的条件

嗨,我想知道有没有更好的方法?条件a比b更重要,b比c更重要,等等

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;