繁体   English   中英

只需将 typescript 条件表达式转换为三元语句

[英]Simply typescript conditional expressions into ternary statements

我有以下if语句。 这个表达式是否可以简化为三元语句? 我无法弄清楚,因为需要根据coverageLineId的值分配group

let group;
if(coverageLineId == 1)
  group = this.medicalBenefitsGroupsView.find((x) => x.value === groupValue);
else if (coverageLineId == 2)
  group = this.dentalBenefitsGroupsView.find((x) => x.value === groupValue);
else if (coverageLineId == 3)
  group = this.visionBenefitsGroupsView.find((x) => x.value === groupValue);

你可以做类似的事情

let group;

group = coverageLineId == 1 ? this.medicalBenefitsGroupsView.find((x) => x.value === groupValue) :
        coverageLineId == 2 ? this.dentalBenefitsGroupsView.find((x) => x.value === groupValue) :
        coverageLineId == 3 ? this.visionBenefitsGroupsView.find((x) => x.value === groupValue) : undefined;

如果你真的想让它更简洁,你可以这样做:

let group = this[["", "medical", "dental", "vision"][coverageLineId] + "BenefitsGroupsView"].find((x) => x.value === groupValue);

但是,我想我会这样做:

let view;
switch (coverageLineId) {
    case 1:
        view = this.medicalBenefitsGroupsView; break;
    case 2:
        view = this.dentalBenefitsGroupsView; break;
    case 3:
        view = this.visionBenefitsGroupsView; break;
}
let group = view.find((x) => x.value === groupValue);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM