Dynamics 365中如何简化包含双重条件判断的JavaScript代码?
Dynamics 365 JS函数优化方案
优化后代码
function selectedNeedSupport(executionContext) { const formContext = executionContext.getFormContext(); // 空值兼容处理:取值为null时默认赋值空数组,避免后续调用方法报错 const selectedItem = formContext.getAttribute("neededsupport").getValue() || []; // 直接通过布尔表达式设置控件可见性,省略冗余if-else formContext.getControl("comments").setVisible(selectedItem.includes(9)); formContext.ui.tabs.get("tab_Application").setVisible(selectedItem.includes(8)); }
优化说明
- 变量声明改用
const:formContext和selectedItem都不会被二次赋值,符合现代JS编码规范 - 提前做空值兼容:用
|| []处理选项集取值为空的场景,后续不需要再重复写selectedItem != null的判断逻辑 - 移除冗余嵌套分支:原代码中
tab_Application的可见性判断逻辑在两个分支重复出现,且该逻辑和selectedItem是否包含9完全无关,可以直接抽离为独立的赋值语句 - 直接用布尔表达式给
setVisible传参:不需要再写if(条件) {setVisible(true)} else {setVisible(false)}的冗余结构,代码精简度和可读性大幅提升 - 优化后完全保留原有业务逻辑,没有任何功能改动
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

