javascript - 如果 if/else if 中的任何条件为真,则执行代码块的聪明方法

标签 javascript if-statement

如果 block 部分包含相同的代码,我经常有 if/else if/else。我想只需要编写一次此代码,类似于“not else”(如果没有满足先前条件,则执行 else block ,如果满足任何先前条件,则将执行 not else block )。我知道您可以在每个 block 中设置一个标志并测试之后是否设置了该标志,或者创建一个在每个 block 中调用的函数(如果您不需要编辑局部变量)。你有一个更聪明/优雅的解决方案的想法吗?
在校对问题时,我想出了在 else block 中返回并将您的公共(public)代码放在其后的想法 - 仅在您之前不必返回时才有效。

if (condition1) {
    /* unique code1 */
    /* common code */        

} else if (condition2) {
    /* unique code2 */
    /* common code */ 

} else if (condition3) {
    /* unique code3 */
    /* common code */ 

} else if (condition4) {
    /* unique code4 */
    /* common code */ 

}

最佳答案

一个非常规的解决方案是循环一次,从而为您提供 break选项:

do {
    if (condition1) {
        // ...
    } else if (condition2) {
        // ...
    } else if (condition3) {
        // ...
    } else break;
    // common code
} while (false);

但是为了可读性,我会选择您在问题中已经提到的标志选项。

关于javascript - 如果 if/else if 中的任何条件为真,则执行代码块的聪明方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60478677/

相关文章:

c# - 来自字符串的动态 if 条件

javascript - 如何从 jquery 中的字符串中删除第一个字符?

javascript - 将 css 应用于一组 url 中存在的元素

javascript - 使用谷歌地图API绘制多边形,每个多边形都必须有一个点击事件

if-statement - 如何在批处理文件中的 "If"中使用多个条件?

javascript - 如果在此代码中输入为空,如何添加?

c - 使用 C 程序从已识别的文本中仅搜索四个词

javascript - {{x.日期 |日期 :'hh:mm' }} 不起作用

javascript - 当我切换时我无法更改卡片的背景颜色

javascript - 为什么会在不应该发生的情况下发生此错误?