Home > Back-end >  Simply typescript conditional expressions into ternary statements
Simply typescript conditional expressions into ternary statements

Time:09-10

I have the following if statement. Is this expression able to be simplified into a ternary statement? I'm having trouble figuring it out since group needs to be assigned based on the value of coverageLineId

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);

CodePudding user response:

If you really want to make it more concise, you can do this:

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

However, I think I'd do this:

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);

CodePudding user response:

You can do something like

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;
  • Related