"If" consolidation/avoiding 嵌套
"If" consolidation/avoiding nesting
我真的想避免在这个代码片段中嵌套...
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)
buttttt 可恶的是它没有用。
主要问题:最有效的摆脱嵌套的最佳方法是什么(我计划这样做两次,只是交换代码)?我希望最好以尽可能少的 IF 语句来完成此操作。
请注意:如果您更改代码很多,我可能不知道您在说什么..请准备好教我或帮助我学习!
听起来您只想在其中一个字段为空时执行某些操作,而不是两个都为空。假设两个元素都是文本字段,.value
将始终是 return 一个字符串。如果字符串为空,则将字符串转换为布尔值会导致 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 = "";
}
我真的想避免在这个代码片段中嵌套...
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)
buttttt 可恶的是它没有用。
主要问题:最有效的摆脱嵌套的最佳方法是什么(我计划这样做两次,只是交换代码)?我希望最好以尽可能少的 IF 语句来完成此操作。
请注意:如果您更改代码很多,我可能不知道您在说什么..请准备好教我或帮助我学习!
听起来您只想在其中一个字段为空时执行某些操作,而不是两个都为空。假设两个元素都是文本字段,.value
将始终是 return 一个字符串。如果字符串为空,则将字符串转换为布尔值会导致 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 = "";
}