使用Map 代替Switch语句

function getResult(status) {
  // 使用 switch case 语句,根据颜色找出对应的水果
  switch (status) {
    case 1:
      return '待发货';
    case 2:
      return '已发货';
    case 3:
      return '已完成';
    default:
      return '';
  }
}

//测试结果
getResult(null); // []
getResult(2); // '已发货'

使用Map实现如上效果

const orderStatus = new Map()
    .set(1, '待发货')
    .set(2, '已发货')
    .set(3, '已完成');

function getOrderStatus(statusCode) {
  return orderStatus.get(statusCode) || [];
}

也可使用字面量对象实现如上效果

const statusDes = {
    1:'待发货',
    2:'已发货',
    3:'已完成'
};
function getStatus(code) {
    return statusDes[code] || '';
}

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 中的 switch 语句是不支持直接使用字符串作为 case 的,但可以使用以下方法实现: 1. 使用枚举类型代替字符串 定义一个枚举类型,每个枚举值对应一个字符串,然后在 switch 语句使用枚举值作为 case。 ```c++ enum Fruit { APPLE, BANANA, ORANGE }; void printFruit(Fruit f) { switch(f) { case APPLE: cout << "Apple" << endl; break; case BANANA: cout << "Banana" << endl; break; case ORANGE: cout << "Orange" << endl; break; default: cout << "Unknown fruit" << endl; break; } } int main() { printFruit(APPLE); printFruit(BANANA); printFruit(ORANGE); return 0; } ``` 2. 使用哈希表查找字符串对应的枚举值 定义一个哈希表,将字符串与枚举值一一对应,然后在 switch 语句使用哈希表查找字符串对应的枚举值作为 case。 ```c++ #include <unordered_map> enum Fruit { APPLE, BANANA, ORANGE }; unordered_map<string, Fruit> fruitMap = { {"apple", APPLE}, {"banana", BANANA}, {"orange", ORANGE} }; void printFruit(string s) { auto iter = fruitMap.find(s); if(iter == fruitMap.end()) { cout << "Unknown fruit" << endl; return; } Fruit f = iter->second; switch(f) { case APPLE: cout << "Apple" << endl; break; case BANANA: cout << "Banana" << endl; break; case ORANGE: cout << "Orange" << endl; break; default: cout << "Unknown fruit" << endl; break; } } int main() { printFruit("apple"); printFruit("banana"); printFruit("orange"); printFruit("pear"); return 0; } ``` 这样就可以通过字符串查找对应的枚举值,再在 switch 语句使用枚举值作为 case。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值