我有一个从服务器响应返回的数组,它有3种可能性,我需要检查UI;
- 如果长度是0..do某事
- 如果长度为1 ...做某事
- 长度> 1 ...做点什么
醇>
考虑到上述条件,是否有更好的方法来编写下面的JS代码?
if (myArray.length == 0) {
} else if (myArray.length == 1) {
} else {
}
答案 0 :(得分:6)
嗯,您可以随时使用switch
:
switch (myArray.length) {
case 0:
doSomething(); break;
case 1:
doSomethingElse(); break;
default:
doSomethingCompletelyDifferent();
}
好处是切换表达式只计算一次,与if-elseif-else
不同。
答案 1 :(得分:4)
你有什么好。或者,您可以使用switch
:
switch (myArray.length) {
case 0:
// Empty
break;
case 1:
// Has one entry
break;
default:
// Has more than one entry
break;
}
或者您有时会看到调度表,但是当您调用函数时,它们确实最相关:
var dispatch = {
0: handleArrayEmpty,
1: handleArrayOneEntry,
multi: handleArrayMultipleEntries
};
(dispatch[myArray.length] || dispatch.multi)();
当然,那里有点儿。 :-)它使用JavaScript's curiously-powerful OR operator来处理myArray.length
与dispatch
中的任何条目都不匹配的情况。
答案 2 :(得分:0)
switch (myArray.length) {
case 0:
// do somthing
break;
case 1:
// do somthing
break;
default:
// do somthing
break ;
}