Javascript 有没有办法在switch语句中转换if语句?
我有这个密码Javascript 有没有办法在switch语句中转换if语句?,javascript,if-statement,switch-statement,Javascript,If Statement,Switch Statement,我有这个密码 if (header.classList.contains("capricorn")) { //star sign description para.innerHTML = starSign.Capricorn; } else if (header.classList.contains("aquarius")) { para.innerHTML = starSign.Aquarius; } else if (h
if (header.classList.contains("capricorn")) {
//star sign description
para.innerHTML = starSign.Capricorn;
} else if (header.classList.contains("aquarius")) {
para.innerHTML = starSign.Aquarius;
} else if (header.classList.contains("pisces")) {
para.innerHTML = starSign.Pisces;
我想在switch语句中转换它,这可能吗?根据
starSign
对象的属性,考虑将您的检查参数化:
function chooseSign(classList, signs) {
return signs.find(s => classList.contains(s.toLowerCase());
}
。。。并据此使用:
const sign = chooseSign(header.classList, Object.keys(starSign));
if (sign) {
para.innerHTML = starSign[sign];
}
我假设星号是一个只有12个键的文本集合。如果不是这样的话,请考虑从中分离出一个数组。
一般来说,当你有一系列的if-else-if-else-if检查一遍又一遍地做着本质上相同的事情时,考虑一下为同样的目的使用不同的函数。这不仅使您有机会简化代码(如本例中所示),而且还隔离了业务逻辑决策,使您的代码更具可读性和可测试性。是的,谢谢。这就是我想我可以做的,我现在就试试。非常感谢,非常有帮助!这就是我想要做的,让我的代码更简单,因为我有很多If语句