优化 switch (true) { case v.status === '90': v.color = 1; break; case v.status < '90' && v.status >= '30': v.color = 2; break; case v.status > '90': v.color = 3; break; case v.status < '30': v.color = 4; break; default: break; }
时间: 2023-12-30 18:05:34 浏览: 22
可以将 switch (true) 改为 switch (v.status) ,这样可以直接根据 v.status 的值来进行判断。同时,由于 v.status 是一个字符串类型,所以需要将 '90' 和 '30' 转换为数字类型后再进行比较。
改进后的代码如下:
```
switch (v.status) {
case '90':
v.color = 1;
break;
case v.status < 90 && v.status >= 30:
v.color = 2;
break;
case v.status > 90:
v.color = 3;
break;
case v.status < 30:
v.color = 4;
break;
default:
break;
}
```
另外,如果 v.status 的取值范围有限且固定,也可以使用对象映射的方式来进行优化,这样代码可读性更高,例如:
```
const statusMap = {
'90': 1,
'30-90': 2,
'0-30': 4
};
if (v.status === '90') {
v.color = statusMap['90'];
} else if (v.status >= 30 && v.status < 90) {
v.color = statusMap['30-90'];
} else if (v.status < 30) {
v.color = statusMap['0-30'];
}
```