有没有更好的方法来检查AddressIndex的条件?
if (AddressIndex == 104 || AddressIndex == 107 || AddressIndex == 108 || AddressIndex == 133 || AddressIndex == 155 || AddressIndex == 165 || AddressIndex == 167 || AddressIndex == 168 || AddressIndex == 182 || AddressIndex == 214 || AddressIndex == 246 || AddressIndex == 260 || AddressIndex == 341 || AddressIndex == 345)
{
alert ("Sorry - We don't deliver to this address.");
}
答案 0 :(得分:2)
正如@dsimer所说,我认为这是最好的方式。它看起来像是:
switch AddressIndex {
case 104:
case 107:
case 108:
case ...:
case ...:
alert("Sorry - We don't deliver to this address.");
break;
}
我无需为您输入所有数字。
答案 1 :(得分:0)
您始终可以使用switch statement。
答案 2 :(得分:0)
如果你使用jQuery:
var a = new Array(104, 107, 108, 133, 155,
165, 167, 168, 182, 214,
246, 260, 341, 345);
if($.inArray(AddressIndex, a))
{
alert ("Sorry - We don't deliver to this address.");
}
否则您可以使用indexOf方法:
var a = new Array(104, 107, 108, 133, 155,
165, 167, 168, 182, 214,
246, 260, 341, 345);
if(a.indexOf(AddressIndex) != -1)
{
alert ("Sorry - We don't deliver to this address.");
}
总是有一个转换作为最后的手段:
switch(AddressIndex)
{
case 104:
case 107:
case 108:
case 133:
case 155:
case 165:
case 167:
case 168:
case 182:
case 214:
case 246:
case 260:
case 341:
case 345:
alert ("Sorry - We don't deliver to this address.");
break;
}
答案 3 :(得分:0)
就性能而言,哈希查找最快:
var nondelivery = {
104: true, 107: true, 108: true, 133: true, 155: true,
165: true, 167: true, 168: true, 182: true, 214: true,
246: true, 260: true, 341: true, 345: true };
if( nondelivery[AddressIndex] )
alert ("Sorry - We don't deliver to this address.");
这当然只是学术上的;只有在多次迭代的循环中才会注意到速度差异。