此if语句可以是切换语句,更漂亮或更简单吗?
items = function () {
n = $(item).length;
if (n % 4 == 3){
$(foo).addClass(small);
} else if (n % 4 == 2){
$(foo).addClass(medium);
} else if (n % 4 == 1){
$(foo).addClass(large);
} else if (n % 4 == 0){
$(foo).addClass(xlarge);
}
};
答案 0 :(得分:2)
由于n % 4
的结果为0
,1
,2
和3
,因此您可以使用一系列数组,其中每个类索引对应一个以前的结果:
items = function () {
n = $(item).length;
$(foo).addClass([xlarge, large, medium, small][n % 4]);
};
您看到,根据n % 4
的值,将选择数组[xlarge, large, medium, small]
的一项,例如,如果n % 4
为2
,则{{1} }将被选中并传递给medium
。
答案 1 :(得分:-1)
例如https://www.w3schools.com/js/js_switch.asp中的示例吗?
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
}
switch语句中的表达式为n%4,且条件相同的情况,即3、2、1、0。您放置了addClass语句,而不是day =“ Sunday”等。
请记住,切换案例确实使用严格的比较,即不是“ ==”而是“ ===”。因此,确切地说,您不能在不更改逻辑的情况下使用switch语句进行重构。
我说switch语句会更合适,因为else if语句中的条件都相同,只是为了测试不同的值。