“如果”合并/避免嵌套
"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)如果只填写其中一个,用户点击提交,并调用这部分函数,我想删除它们两个的值。
我试过做一个化合物
&&(和)
和
||(或)
可恶的是它没有用。
主要问题:摆脱嵌套的最佳方法是什么(我计划这样做两次,只是交换代码)这将是最有效的?我希望最好以尽可能少的 IF 语句来完成此操作。
请注意:如果你经常更改代码,我可能不知道你在说什么......请准备好教我或帮助我学习!
听起来您只想在其中一个字段为空时才想做某事,而不是两个字段都为空。假设这两个元素都是文本字段,.value
将始终返回一个字符串。如果字符串为空,将字符串转换为布尔值会导致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 = "";
}
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 可以合并或嵌套ES6导入
- Undercore JS嵌套了每个合并对象
- 合并两个嵌套的JSON数组
- “如果”合并/避免嵌套
- 在 JavaScript 中合并嵌套的对象数组
- 如何在 Javascript 中将嵌套对象合并到它们的父对象中
- 合并两个嵌套对象,并在侧面连接数组
- 合并嵌套的、重叠的<strong>并且<em>标签
- 基于javascript中的条件合并两个嵌套的JSON对象
- 在JavaScript中合并对象和嵌套属性
- 使用嵌套循环的复杂数组合并
- 合并嵌套对象而不进行更改