는이 같은 switch 문이있다. 나는 이런 식으로 쓰고 싶습니다 :switch 문에서 특정 경우에 여러 코드 블록을 실행하는 방법은 무엇입니까?</p> <pre><code>switch(a) { case 0: // do something break; case 1: // do something else break; } </code></pre> <p>내가하고 싶은 것은, 예를 들어 때 <code>a == 2</code> 코드의 두 블록을 실행할 수 있습니다 :
switch(a) {
case 0:
case 2:
// do something
break;
case 1:
case 2:
// do something else
break;
}
그러나 첫 번째 break 문이 전체 switch 문을 끝내기 때문에 분명히 작동하지 않습니다. 내가 도우미 함수를 작성했다 가지고 올 수
있는 유일한 방법은 :
function case0() {
// do something
}
function case1() {
// do something else
}
switch(a) {
case 0:
case0();
break;
case 1:
case1();
break;
case 2:
case0();
case1();
break;
}
이 솔루션은 약간 장황하고 나에게 추한 것 같다. 내가 원하는 것을 성취 할 수있는 더 좋은 방법이 있습니까?
'switch' 문은 충분히 복잡합니다. 당신이 제안하는 것은 그들이 근본적인 수준에서 어떻게 작동하는지에 대한 변화입니다. 왜 함수에 대한 링크를 가질 수있는 매핑 테이블을 사용하지 않습니까? 예를 들어'{2 : function() {...}} '. – tadman
글쎄요, 제가 '스위치'에 보관하고 싶은 주된 이유는 'switch'문장에 프로젝트를 구현 한 것이고, 제가 설명했던 것을 수행 할 수 있도록 다른 모든 것을 다시 쓰고 싶지 않다는 것입니다. – BoltKey
당신이 원하는 것과 JavaScript가 할 수있는 것은 두 가지입니다. 현실에 굴복하거나 싸우려는 인생을 보내고 싶습니까? 원하는 경우 [TC39를 통해 ECMAScript 그룹에게 청원] (https://tc39.github.io/process-document/)에 오신 것을 환영합니다. 때때로 우리가 생각하는 접근 방식이 최선의 방법이 아닙니다. 배우고, 적응하고, 계속 나아갑니다. – tadman