javascript - "If"合并/避免嵌套

标签 javascript if-statement nested

我真的试图避免嵌套在此代码片段中...

deal_trade_in_model_1 = document.getElementById('deal_trade_in_model_1').value;
deal_trade_in_amount_1 = document.getElementById('deal_trade_in_amount_1').value;
if (typeof deal_trade_in_model_1 !== 'undefined' && deal_trade_in_model_1 !== null) {
    console.log(deal_trade_in_amount_1);
    console.log(deal_trade_in_model_1);
        if (deal_trade_in_model_1 !== null || deal_trade_in_model_1 !== "") {
            if (deal_trade_in_amount_1 == null || deal_trade_in_amount_1 == "") {
                console.log('entered into function');
                document.getElementById("deal_trade_in_model_1").value = "";
                document.getElementById("deal_trade_in_amount_1").value = "";
    }
}
}

基本上,这个函数的作用是获取两个字段的值...有关它们的知识以及我想对它们做什么:

1) 它们不是必需的

2)如果填写其中一项,则必须填写另一项

3)如果只填写其中一项,用户点击提交,调用了这部分函数,​​我想删除两者的值。

我尝试过复合

&& (and)

|| (or)

但可恶的是,它不起作用。

主要问题:摆脱嵌套的最佳方法是什么(我计划这样做两次,只是交换代码),这将是最有效的?我希望最好以尽可能少的 IF 语句来完成。

请注意:如果您对代码进行了大量更改,我可能不知道您在说什么..请准备好教我或帮助我学习!

最佳答案

听起来您只想在其中一个字段为空而不是两个字段都为空时执行某些操作。假设这两个元素都是文本字段,.value 将始终返回一个字符串。如果字符串为空,则将字符串转换为 bool 值结果为 false,否则为 true

所以

Boolean(deal_trade_in_model_1) === Boolean(deal_trade_in_amount_1) 
如果两个字段都有值(都将转换为 true)或两个字段均为空(都转换为 false),

将为 true >).

因此您的代码可以减少为

var model_1 = document.getElementById('deal_trade_in_model_1');
var amount_1 = document.getElementById('deal_trade_in_amount_1');

if (Boolean(model_1.value) !== Boolean(amount_1.value)) {
    model_1.value = "";
    amount_1.value = "";
}

关于javascript - "If"合并/避免嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995730/

相关文章:

javascript - Android 2.3.3 上 touchmove 事件的数量严重减少

javascript - 使用 Angular Directive(指令)作为自定义指令的属性

java - 如何循环询问一个数字是否是整数?

c++ - 访问封闭类的 protected 成员 [嵌套类]

javascript - 带有主细节模式的 UI 路由器 $stateParams

javascript - 使用stopImmediatePropagation后如何防止关键事件从handsontable传播?

javascript - 加载 View 页面后如何推送额外选择的选项?

elasticsearch - Elasticsearch无法精确查询文档内的数组字段

java - 避免条件的清洁方法

java - 如果有条件,每个条件都单独起作用,但不能同时起作用