问题
更多是出于好奇,但我想知道如何将 if 语句重构为更干净/不那么脆弱的东西。根据我的阅读,多态性可以用吗?
在示例中,如果 color:'red'
,我只想退回第一辆车。是真的。
CoffeeScript
example: () ->
cars = [{color:'red', reg:'111'},{color:'blue', reg:'666'}]
if cars[0].color is 'red'
then cars[0]
else cars[1]
Javascript
example: function() {
var cars = [{color:'red',reg:'111'},{color:'blue',reg:'666'}];
if (cars[0].color === 'red') {
return cars[0];
} else {
return cars[1];
}
}
我理解这个问题可能由于模棱两可的性质而关闭或移动
最佳答案
? : 运算符就是这样,一个“更干净”的 if-else
http://msdn.microsoft.com/en-us/library/ty67wk28.aspx
classify = (input < 0) ? "negative" : "positive";
还有用于更大组合的 switch 语句:
http://www.w3schools.com/js/js_switch.asp
switch(n)
{
case 1:
execute code block 1
break;
case 2:
execute code block 2
break;
default:
code to be executed if n is different from case 1 and 2
}
多态性是一个抽象概念,而不是一种编写语句的方式。这是创建类型至少有些模棱两可的方法/函数/类/等的做法。因此,如果为参数 1 提供整数,则相同的方法可以返回结果,就像将数组提供给相同的参数一样。
关于javascript - 是否有使用 IF/ELSE 语句的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19271755/