javascript - 如何避免if语句中的java脚本重复代码
问题描述
我有以下功能,里面有一些词干:
isFieldVisible(node: any, field: DocumentField): boolean {
if (field.tag === 'ADDR_KOMU') {
let field = this.dfs_look(node.children, 'ADDR_APPLICANTTYPE');
return field.fieldvalue == 1;
}
if (field.tag === 'ADDR_SNAME') {
let field = this.dfs_look(node.children, 'ADDR_APPLICANTTYPE');
return field.fieldvalue == 1;
}
if (field.tag === 'ADDR_FNAME') {
let field = this.dfs_look(node.children, 'ADDR_APPLICANTTYPE');
return field.fieldvalue == 1 || field.fieldvalue == 2;
}
}
如何改进它并避免重复?
我尝试使用带有元组的 foreach 作为迭代值,但我无法从 foreach 返回布尔值
解决方案
尝试这个
isFieldVisible(node: any, field: DocumentField): boolean {
let field:{
tag: "ADDR_KOMU" | "ADDR_SNAME" |"ADDR_FNAME",
fieldvalue:boolean
};
switch (field.tag) {
case 'ADDR_KOMU':
case 'ADDR_SNAME':
field = this.dfs_look(node.children, 'ADDR_APPLICANTTYPE');
return (field.fieldvalue == 1);
case 'ADDR_FNAME':
field = this.dfs_look(node.children, 'ADDR_APPLICANTTYPE');
return (field.fieldvalue == 1 || field.fieldvalue == 2);
default:
return
}
}
推荐阅读
- xamarin.android - 关于 Activity.RunOnUIThread 的问题
- python - 如何使用 python 登录网站?
- python - 使用关键字参数'{'kwargs':{'slug':'long-establis'反转'post-detail'
- javascript - 反应 onChange 功能不适用于选择标签
- google-api - 个人资料信息的谷歌旧 api 不起作用,新的 API URL 是什么?
- typescript - 打字稿参数未对齐 (align)tslint(1)
- php - 如何配置 nginx 仅将 URL 中的第一个路径映射到 php 应用程序的特定目录?
- javascript - 在 Javascript(Angular)中调用异步函数的最佳方法是延迟/睡眠。Setimeout 不允许这样做
- kotlin - 类型或类键控映射
- css - 为什么我们需要显示块来使按钮居中