Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 更简洁地编写多个逻辑运算符_Javascript_Logical Operators - Fatal编程技术网

Javascript 更简洁地编写多个逻辑运算符

Javascript 更简洁地编写多个逻辑运算符,javascript,logical-operators,Javascript,Logical Operators,我试图用更简洁的方式编写多个逻辑运算符。在我的例子中,我希望函数只在四个输入都是数字时运行。我能想到的唯一方法是使用&&,使用多个if(如下所示),或使用switch,将它们全部写入一个if语句中。但我想知道是否有更简洁的方法 function fn() { const input = display.getInput(); if (input.p !== "" && !isNaN(input.p)) { if (input.d !=

我试图用更简洁的方式编写多个逻辑运算符。在我的例子中,我希望函数只在四个输入都是数字时运行。我能想到的唯一方法是使用&&,使用多个if(如下所示),或使用switch,将它们全部写入一个if语句中。但我想知道是否有更简洁的方法

    function fn() {

    const input = display.getInput();

    if (input.p !== "" && !isNaN(input.p)) {

        if (input.d !== "" && !isNaN(input.d)) {

            if (input.s !== "" && !isNaN(input.s)) {

                if (input.y !== "" && !isNaN(input.y)) {

                    if (input.y <= 100) {

                        /* run code */
                    } 
                }
            }
        } 
    }    
}
函数fn(){
常量输入=display.getInput();
if(input.p!==“”&&&!isNaN(input.p)){
if(input.d!==“”&&&!isNaN(input.d)){
if(input.s!==“”&&&!isNaN(input.s)){
if(input.y!==“”&&&!isNaN(input.y)){

如果(input.y要准确回答您的问题,您可以这样做:

if (input.p !== "" && !isNaN(input.p) && input.d !== "" && !isNaN(input.d) ...
但事实上,您应该编写得更好。首先实现一个验证函数:

function isValid(property) {
    return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
    for (let property of ["p", "d", "s", "y"]) {
        if (!isValid(input[property])) {
            return false;
        }
    }
    return input.y <= 100;
}
因此,如果:

if (isValid(input.p) && isValid(input.d) && ...
最后,您可能希望将所有内容都放入一个新函数中:

function isValid(property) {
    return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
    for (let property of ["p", "d", "s", "y"]) {
        if (!isValid(input[property])) {
            return false;
        }
    }
    return input.y <= 100;
}
函数isEverythingValid(输入){
(出租[“p”、“d”、“s”、“y”]的财产){
如果(!isValid(输入[property])){
返回false;
}
}

return input.y要准确回答您的问题,您可以这样做:

if (input.p !== "" && !isNaN(input.p) && input.d !== "" && !isNaN(input.d) ...
但事实上,您应该编写得更好。首先实现一个验证函数:

function isValid(property) {
    return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
    for (let property of ["p", "d", "s", "y"]) {
        if (!isValid(input[property])) {
            return false;
        }
    }
    return input.y <= 100;
}
因此,如果:

if (isValid(input.p) && isValid(input.d) && ...
最后,您可能希望将所有内容都放入一个新函数中:

function isValid(property) {
    return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
    for (let property of ["p", "d", "s", "y"]) {
        if (!isValid(input[property])) {
            return false;
        }
    }
    return input.y <= 100;
}
函数isEverythingValid(输入){
(出租[“p”、“d”、“s”、“y”]的财产){
如果(!isValid(输入[property])){
返回false;
}
}
返回input.y