提问者:小点点

如果为Null或为空,则缩短长If语句参数


我怎样才能缩短这个if语句呢?

if (($('#first').val() != '') && ($('#middle').val() != '') && ($('#last').val() != '') && ($('#email').val() != '') && ($('#account_type').val() != '') && ($('#account_routing').val() != '') && ($('#account_number').val() != '')) {



}

此外,我还想在没有像这样的长语句的情况下检查空值。 我知道其他的方法,但就是不知道什么是最好的选择。

我试过了

var credit_map = {
    "#first": "First Name",
    "#middle": "Middle Name",
    "#last": "Last Name",
    "#email": "Email Address",
    "#postalcode": "Zip/Postal Code",
    "#card_name": "Name on Card",
    "#card_number": "Card Number",
    "#card_month": "Card Experation Month",
    "#card_year": "Card Experation Year",
    "#card_verification": "Card Verification Code"
}

for (var [key, value] of Object.entries(credit_map)) {
    if ($(key).val() != null || undefined) {

    }
}

我知道的方法:

![“a”, “b”, “c”].indexOf(“a”)

const​ student = {​ 
    name: ​'Bob’​,​ 
    equipmentTraining: ​''​,​ 
}
if​(!student.equipmentTraining) {​
    return​ ​'Not authorized to operate machinery'​
}

共1个答案

匿名用户

我认为您是在问如何确保对象键中的选择器匹配的所有元素都具有非空值。 如果是,则可以使用every:

if (Object.keys(credit_map).every(sel => $(sel).val())) {
    // Yes, they all have non-blank values
} else {
    // No, at least one of them has a blank value (or didn't exist at all)
}

这是因为“”undefined都是falsy值,而所有非空字符串都是truthy值。 every将返回值转换为布尔值并将其用作标志。