如何将multipler if语句重构为更干净、更易于阅读的javascript代码?

如何将multipler if语句重构为更干净、更易于阅读的javascript代码?,javascript,Javascript,我在这样的函数中有多个if语句: const handleCat = () => { if (mainCat === 'car') { return carCat; } if (mainCat === 'mobile') { return mobileCat; } if (mainCat === 'estate') { return

我在这样的函数中有多个if语句:

    const handleCat = () => {
        if (mainCat === 'car') {
            return carCat;
        }
        if (mainCat === 'mobile') {
            return mobileCat;
        }
        if (mainCat === 'estate') {
            return estateCat;
        }
        if (mainCat === 'other') {
            return otherCat;
        }
    };

所有的cat都是带有对象的数组。我想知道如何将这段代码重构成更干净、更易于阅读的代码?在javascript中重构多个if语句有多少种方法?

使用
开关
语句:

const handleCat = () => {
  switch (mainCat) {
    case 'car':
      return carCat;
    case 'mobile':
      return mobileCat;
    case 'estate':
      return estateCat;
    case 'other':
      return otherCat;
    default:
      break;
  }
};
var mainCat = 'car';

 const handleCat = () => {
    switch(mainCat) {
      case 'car':
        return carCat;
        break;
      case 'mobile:
        return mobileCat;
        break;
      case 'estate'
        return estateCat;
        break;
      default:
        return otherCat;
    }
}

使用
开关
语句:

const handleCat = () => {
  switch (mainCat) {
    case 'car':
      return carCat;
    case 'mobile':
      return mobileCat;
    case 'estate':
      return estateCat;
    case 'other':
      return otherCat;
    default:
      break;
  }
};
var mainCat = 'car';

 const handleCat = () => {
    switch(mainCat) {
      case 'car':
        return carCat;
        break;
      case 'mobile:
        return mobileCat;
        break;
      case 'estate'
        return estateCat;
        break;
      default:
        return otherCat;
    }
}

您可以使用switch语句:

const handleCat = () => {
  switch (mainCat) {
    case 'car':
      return carCat;
    case 'mobile':
      return mobileCat;
    case 'estate':
      return estateCat;
    case 'other':
      return otherCat;
    default:
      break;
  }
};
var mainCat = 'car';

 const handleCat = () => {
    switch(mainCat) {
      case 'car':
        return carCat;
        break;
      case 'mobile:
        return mobileCat;
        break;
      case 'estate'
        return estateCat;
        break;
      default:
        return otherCat;
    }
}

您可以使用switch语句:

const handleCat = () => {
  switch (mainCat) {
    case 'car':
      return carCat;
    case 'mobile':
      return mobileCat;
    case 'estate':
      return estateCat;
    case 'other':
      return otherCat;
    default:
      break;
  }
};
var mainCat = 'car';

 const handleCat = () => {
    switch(mainCat) {
      case 'car':
        return carCat;
        break;
      case 'mobile:
        return mobileCat;
        break;
      case 'estate'
        return estateCat;
        break;
      default:
        return otherCat;
    }
}

我推荐的一种方法是使用对象类型

const genericCat = {
    car : carCat,
    mobile : mobileCat,
    estate:estateCat,
    other : otherCat
}

handleCat = (mainCat)=>{
return(generiCat[mainCat])    
}


如果cat类型增加,这种方法还可以避免从多个地方更新代码。这就像在Java中使用枚举,但使用对象一样。

我建议的一种方法是使用对象类型

const genericCat = {
    car : carCat,
    mobile : mobileCat,
    estate:estateCat,
    other : otherCat
}

handleCat = (mainCat)=>{
return(generiCat[mainCat])    
}


如果cat类型增加,这种方法还可以避免从多个地方更新代码。这就像在Java中使用枚举,但使用对象一样。

switch语句是一种选择

const handleCat=(mainCat)=>{
开关(主Cat){
案例“汽车”:
返回“carCat”;
“手机”案例:
返回“mobileCat”;
“不动产”一案:
返回“estateCat”;
案例“其他”:
返回“otherCat”;
违约:
返回“后备猫”;
}
};
const first=handleCat(“汽车”);
常数秒=handleCat();
console.log(第一);

console.log(第二个)开关语句是一个选项

const handleCat=(mainCat)=>{
开关(主Cat){
案例“汽车”:
返回“carCat”;
“手机”案例:
返回“mobileCat”;
“不动产”一案:
返回“estateCat”;
案例“其他”:
返回“otherCat”;
违约:
返回“后备猫”;
}
};
const first=handleCat(“汽车”);
常数秒=handleCat();
console.log(第一);

console.log(第二个)
Switch
语句在这里更有意义<代码>开关
语句在这里更有意义!