Javascript 使用多个选项编写Jquery If语句的较短方法;如果;
使用Jquery是否有一种更简单/更短的方法来编写这样的if语句:Javascript 使用多个选项编写Jquery If语句的较短方法;如果;,javascript,jquery,if-statement,Javascript,Jquery,If Statement,使用Jquery是否有一种更简单/更短的方法来编写这样的if语句: if(number === "0" ) { degrees = "-160"; } if(number === "1" ) { degrees = "-158"; } if(number === "2" ) { degrees = "-156"; } if(number === "3" ) { degrees = "-154"; } if(number === "4" ) { degrees = "-152"; } if(num
if(number === "0" ) { degrees = "-160"; }
if(number === "1" ) { degrees = "-158"; }
if(number === "2" ) { degrees = "-156"; }
if(number === "3" ) { degrees = "-154"; }
if(number === "4" ) { degrees = "-152"; }
if(number === "5" ) { degrees = "-150"; }
if(number === "6" ) { degrees = "-148"; }
if(number === "7" ) { degrees = "-146"; }
if(number === "8" ) { degrees = "-144"; }
if(number === "9" ) { degrees = "-142"; }
if(number === "10") { degrees = "-140"; }
var myObject = {'0':'-160', '1':'-158', '2':'-156'};
var degrees = myObject[number];
number变量只是一个输入字段,用户在其中输入0-10之间的数字
谢谢大家! 嗯。。。使用阵列快速简便
degrees = [-160, -158, ..., -140][number];
或者,为了避免将值硬编码到代码中,尝试创建一个基于公式生成值的函数
degress = -160 + 2 * number;
创建一个数组,而不是
if
s
var degrees = ["-160","-158","-156","-154","-152","-150","-148","-146","-144","-142","-140"];
然后,您可以简单地用
console.log(degrees[number]);
switch语句可能适合您
switch(number){
case 1:
doThis();
break;
case 2:
doThat();
break;
}
使用swich
switch(number ) {
case "0":degrees = "-160";
break;
case "1" : degrees = "-158";
break;
...
...
case "10" : degrees = "-140";
break;
}
试一试
您可以使用下面创建的映射,并使用
number
变量检索值
var map = new Object();
map["0"]="-160";
map["1"]="-158";
map["2"]="-156";
map["3"]="-154";
map["4"]="-152";
map["5"]="-150";
map["6"]="-148";
map["7"]="-146";
map["8"]="-144";
map["9"]="-142";
map["10"]="-140";
和检索值,如
degrees = map[number];
对我来说,我喜欢这样使用:
var obj = {
0 : '-160',
1 : '-158'
}
if ( $.inArray(number, [1,2,3,...10] ) !== -1 ) {
degree = obj[number];
}
对于您的特定问题,您只需编写一个如下所示的函数
var getDegrees = function(number){
return -160 + ((+number)*2);
}
叫它贝娄
getDegrees("1") // will return -158
getDegrees("10") // will return -140
getDegrees(10) // will also return -158
为什么不使用开关箱挡块
switch (number) {
case "0":
degrees = "-160";
case "1":
degrees = "-158";
.
.
.
default:
}
但是,您可以将数字转换为int。然后只需编写以下命令:
degrees = "-" + 160 - number * 2;
改为使用对象,如下所示:
if(number === "0" ) { degrees = "-160"; }
if(number === "1" ) { degrees = "-158"; }
if(number === "2" ) { degrees = "-156"; }
if(number === "3" ) { degrees = "-154"; }
if(number === "4" ) { degrees = "-152"; }
if(number === "5" ) { degrees = "-150"; }
if(number === "6" ) { degrees = "-148"; }
if(number === "7" ) { degrees = "-146"; }
if(number === "8" ) { degrees = "-144"; }
if(number === "9" ) { degrees = "-142"; }
if(number === "10") { degrees = "-140"; }
var myObject = {'0':'-160', '1':'-158', '2':'-156'};
var degrees = myObject[number];
尝试创建具有属性
0
-10
的对象,将度设置为对象内属性的值
var obj={
"0": "-160",
"1": "-158",
"2": "-156",
"3": "-154",
"4": "-152",
"5": "-150",
"6": "-148",
"7": "-146",
"8": "-144",
"9": "-142",
"10": "-140"
};
//集伪随机数
变量编号=1+数学楼层(数学随机()*10);
//设置“度”
变量度=对象[数量];
document.body.textContent=度代码>这个怎么样
degrees = ( -160 + 2 * number ).toString();
var number=“3”;
变量度数=(-160+2*number).toString();
控制台日志(编号、度数)代码>所以,我有几种方法可以回答这个问题。它并不是很短,但您的意图可能更为明显和直接,使用开关
,而不是,如果
s:
switch (number)
{
case "0":
degrees = "-160";
break;
case "1":
degrees = "-158";
break;
...
}
但是,对于这种类型的东西,查找表可能更清晰和简洁:
var degreesLookupTable = {
"0": "-160",
"1": "-158",
"2": "-156",
"3": "-154",
"4": "-152",
"5": "-150",
"6": "-148",
"7": "-146",
"8": "-144",
"9": "-142",
"10": "-140"
};
if (number in degreesLookupTable)
degrees = degreesLookupTable[number]
else
throw "Number not found in degree map!"
有关详细信息,请参见查阅表格部分
第三,数字
和度
之间似乎存在直接的数学关系。也许只需编写一个函数,直接根据number
的值计算度
?如果它是一个有限列表,我建议将其限制在这些选择范围内。例如:0n+1
转到您最喜欢的搜索引擎,搜索查找表。虽然比if语句长。switch..case
很慢。我必须说,有很多冗余,这通常是件坏事。您不需要使用+运算符将其转换为数字。JavaScript会自动执行“2”*2==4。@BhojendraNepal谢谢您的回复。我不知道。而“2”+2等于“22”。所以这就是我不想冒险的原因之一。非常感谢!这很好用。我稍微修改了一下以适应我的代码,但是核心工作得很好。@Mritunjay没有风险。每件事都有明确的规定,如有可能,双方都将被铸造成一个数字。