가독성과 유지 보수성을 높이기 위해 아래 코드를 리팩터링하거나 다시 작성할 수 있습니까? 두 개의 주 가지가 있고 각 가지에 3 가지 옵션과 3 가지 하위 옵션이있는 동일한 if-else 체인이 있습니다. 전체 나는 9 개의 다른 기능을 실행할 수있는 9 leafs 있습니다.Javascript/NodeJs optimization if-else
function selectFunctionToRun(){
if (isFirstOption()) {
if(isAlpha()){
if(isXRay()){
do1();
}else if (isYankee()){
do2();
}else if (isZebra()){
do3();
}
}else if (isBeta()){
if(isXRay()){
do4();
}else if (isYankee()){
do5();
}else if (isZebra()){
do6();
}
}else if (isCharlie()){
if(isXRay()){
do7();
}else if (isYankee()){
do8();
}else if (isZebra()){
do9();
}
}
}
else if(isSecondOption(){
if(isAlpha()){
if(isXRay()){
do11();
}else if (isYankee()){
do12();
}else if (isZebra()){
do13();
}
}else if (isBeta()){
if(isXRay()){
do14();
}else if (isYankee()){
do15();
}else if (isZebra()){
do16();
}
}else if (isCharlie()){
if(isXRay()){
do17();
}else if (isYankee()){
do18();
}else if (isZebra()){
do19();
}
}
}
}
미리 감사드립니다.
'isFirstOption()','isSecondOption()'의 값이 동적이라고 가정하고 있습니다. 맞습니까? – jrthib
그 18 가지 기능은 실제로 서로 다른 것입니까? – Bergi
답장을 보내 주셔서 감사합니다. 이 질문에 대한 대답은 예와 예입니다. 내 진짜 프로젝트에는 4 가지 옵션과 36 가지 기능이 있습니다. 예를 들어 두 가지 옵션 만 썼습니다. – NodeJsBeginner