较短的嵌套if语句

Shorter nested if statements?

本文关键字:if 语句 嵌套      更新时间:2023-09-26

我只是想知道,有没有更快的写法?

    if (name == '' && distance == '') {
        y = 2;
    }
    else if (name == '' && distance < 1) {
        y = 2;
    }

我知道我可以把它们放在同一行,但有没有一种更简单的方法可以让我不必再次重写"name=''"部分?有点像这样:

    if (name == '' && (distance == '' || distance < 1)) {
        y = 2;
    }

其中,距离部分将首先进行评估,如果满足其中一个参数,则name="部分将与其进行检查。

实际上,在javascript '' < 1 === true中,所以您可以只做:

if (name == '' && distance < 1) {
    y = 2;
}
if (name == ' ')
{
    if(distance == ' ')
    {
        y==2
    }
    else if(distance < 1)
    {
        y=2
    }
}

更简单,但意图仍然显而易见。

我会这样写:

if (name === '') {
    if (distance === '') {
        // do stuff
    } else {
        if (distance < 1) {
            // do stuff
        }
    }
}

空名称在这两种情况下都很常见,所以如果它是空的,那么继续测试距离。

如果能让代码更容易理解,那么最好多写一点代码。

简短而隐晦的内容通常很难在以后使用。