多条件if语句优化方式
项目经常发现类似的代码块,多条件语句,首先想到的就是if语句,真实在代码审查中发现如下代码块。从代码量、执行效率两块考虑优化代码块。
优化一
采用对象索引方式。
stepFromatter(step) {
const type = Number(step);
const steps = {
1: '创建',
2: '受理',
3: '派单',
4: '办理',
5: '查验',
6: '回访',
7: '评价',
}
return steps[type] || '';
}
优化二
采用数组方式,简化代码量。
stepFromatter(step) {
const type = Number(step);
const steps = ['创建', '受理', '派单', '办理', '查验', '回访', '评价'];
return steps[type] || '';
}
优化三
采用Switch语句
stepFromatter(step) {
const type = Number(step);
switch(type) {
case 1:
return '创建';
case 2:
return '受理';
case 3:
return '派单';
case 4:
return '办理';
case 5:
return '查验';
case 6:
return '回访';
case 7:
return '评价';
default:
return '';
}
}
switch语句与if语句区别
注:运行效率Switch语句优于if语句。
- switch语句会在运行生成索引,与case中的值相对。根据值可以直达正确条件。
- if语句会在运行时依次遍历条件,直到找到正确条件。
if、switch语句使用场景
- 确定取值,选择switch语句。
- 范围取值,选择if语句。