我有2个变量......它们都可以获得状态(0,1,2,“xxx”) 比较这些变量的最佳方法是什么?或者是很多if,如果是最好的方式呢?
if((Status1 && Status2) == 2){
connectorImage = "connector.png";
}
else if((Status1 && Status2) == 1){
connectorImage = "connector_grey.png";
}
else if(Status1 == 1 && Status2 == 2){
connectorImage = "connector_greytogreen.png";
}...
答案 0 :(得分:1)
您可以尝试类似
的内容if(Status1 == Status2){
//Do something
}else if(Status1 < Status2){
//Do something else
}else if(Status2 > Status1){
// Do something else
}
这应该有效,除非所有16种组合都需要一个独特的动作。那么你就会遇到很多if's and else's
答案 1 :(得分:1)
这取决于您需要比较的具体内容。 例如:如果您需要将正确的图像提供给状态,我将使用以下内容:
function getImageByStatus(int status) {
switch (status) {
case 1:
return "connector.png";
case 2:
return "connector_grey.png";
}
return "";
}
如果你有更复杂的比较,你唯一的方法可能是一些if语句
答案 2 :(得分:0)
var connectorImage = status1 +“_”+ status2 +“。png”;
并将图像重命名为“0_0.png”,“1_0.png”等。
或者在组合的雕像和连接器名称之间创建映射:
var statusesToConnectorImages = { “0_0”:“connector.png”, “0_1”:“connector_grey.png” } var connectorImage = statusesToConnectorImages [status1 +“_”+ status2];