Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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_Jquery_Html_If Statement - Fatal编程技术网

Javascript 更短的嵌套if语句?

Javascript 更短的嵌套if语句?,javascript,jquery,html,if-statement,Javascript,Jquery,Html,If Statement,我只是想知道,有没有更快捷的方法写这个 if (name == '' && distance == '') { y = 2; } else if (name == '' && distance < 1) { y = 2; } if(name=''&&distance=''){ y=2; } else if(name=''&&distance

我只是想知道,有没有更快捷的方法写这个

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

    else if (name == '' && distance < 1) {
        y = 2;
    }
if(name=''&&distance=''){
y=2;
}
else if(name=''&&distance<1){
y=2;
}
我知道我可以把它们放在同一行,但是有没有一种更简单的方法,我不必第二次重写“name=''”部分?有点像这样:

    if (name == '' && (distance == '' || distance < 1)) {
        y = 2;
    }
if (name === '') {
    if (distance === '') {
        // do stuff
    } else {
        if (distance < 1) {
            // do stuff
        }
    }
}
if(名称=“”&&(距离=“”| |距离<1)){
y=2;
}

首先计算距离部分,如果满足其中一个参数,则名称==''部分将与其进行检查。

我将这样写:

    if (name == '' && (distance == '' || distance < 1)) {
        y = 2;
    }
if (name === '') {
    if (distance === '') {
        // do stuff
    } else {
        if (distance < 1) {
            // do stuff
        }
    }
}
if(name==''){
如果(距离==''){
//做事
}否则{
如果(距离<1){
//做事
}
}
}
两种情况下都有一个空名称,因此如果该名称为空,则继续测试距离

如果代码更容易理解,最好多写一点代码


在以后的工作中,通常很难使用简短而神秘的语言。

实际上,在javascript中,<1===true,因此您可以执行以下操作:

if (name == '' && distance < 1) {
    y = 2;
}
if(name=''&&distance<1){
y=2;
}
if(name='')
{
如果(距离=“”)
{
y==2
}
否则如果(距离<1)
{
y=2
}
}

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

我同意:最短的代码不一定是最容易阅读或稍后返回并修改的代码。但是对于这个非常简单的用例,我认为越短越好。javascript也使用了短路布尔运算符,因此对于“首先计算距离部分,如果满足其中一个参数,那么name=''部分将进行检查。”您可以这样交换顺序:
if(距离<1&&name='')
这样,首先计算距离,并且仅当距离检查的计算结果为true时才移动到name。