是否有更好的方法来编写这个嵌套的if else语句?


if (restroom) {
if (fleet) {
secondIconM9;
} else {
secondIcon;
}
} else {
if (fleet) {
firstIconM9;
} else {
fistIcon;
}
}

这是我写的代码。它可以工作,我可以把它重构成三元,但我有一种感觉,这是不必要的描述。有没有更好的方法来编写这个嵌套的if-else条件?

这样可以保持内容清晰,并减少if/else嵌套。当然,如果这段代码位于返回图标的函数中。否则就需要else语句。

if (restroom) {
return (fleet) ? secondIconM9 : secondIcon;
}
return (fleet) ? firstIconM9 : firstIcon;

可以使用else if语句组合每个true和false组合。

if(restroom && fleet){
//secondIconM9
}
else if(restroom && !fleet){
//secondIcon
}
else if(!restroom && fleet){
//firstIconM9
}
else if(!restroom && !fleet){
//fistIcon
}

我认为有两种方法可以改善这一点。第一个较长,但可读性更强:

if(restroom && fleet) {
secondIconM9;
}
else if(restroom){
secondIcon;
}
else if(fleet) {
firstIconM9;
}
else {
firstIcon;
}

第二个更简洁,但可能不太好读:

let icon = restroom ? 'secondIcon' : 'firstIcon';
icon += fleet ? 'M9' : '';

最新更新