我正在尝试根据用户报告的严重性类型来更改背景颜色。我现在已经对其进行了硬编码,仅用于测试目的。
问题是,当我记录严重性[randomSeverity]时,它会给出正确的值,但是switch语句似乎没有监听它?
const severity =['Extreme', 'High', 'Medium', 'Low', 'Trivial']
const randomSeverity = Math.floor(Math.random() * Math.floor(5))
var bgcolor = () => {
switch(severity[randomSeverity]){
case 'Extreme':
bgcolor = 'bg-red-600'
break
case 'High':
bgcolor = 'bg-orange-600'
break
case 'Medium':
bgcolor = 'bg-yellow-600'
break
case 'Low':
bgcolor = 'bg-green-300'
break
case 'Trivial':
bgcolor = 'bg-green-600'
break
default:
bgcolor = 'bg-white'
console.log('init')
}
}
答案 0 :(得分:2)
您将 function 存储在变量bgcolor
中:
var bgcolor = () => { ... }
但是您永远不会调用该功能。即使您愿意...分配一个函数,然后应使用值覆盖自身也是一个奇怪的构造。
如果删除该代码段周围的功能部分,它将起作用:
const severity = ['Extreme', 'High', 'Medium', 'Low', 'Trivial']
const randomSeverity = Math.floor(Math.random() * 5)
var bgcolor;
switch (severity[randomSeverity]) {
case 'Extreme':
bgcolor = 'bg-red-600'
break
case 'High':
bgcolor = 'bg-orange-600'
break
case 'Medium':
bgcolor = 'bg-yellow-600'
break
case 'Low':
bgcolor = 'bg-green-300'
break
case 'Trivial':
bgcolor = 'bg-green-600'
break
default:
bgcolor = 'bg-white'
console.log('init')
}
console.log(randomSeverity);
console.log(severity[randomSeverity]);
console.log(bgcolor);
此外,我将Math.floor(5)
简化为5
,尝试舍入整数是没有意义的,因为它仍然会返回相同的值。