は、私はこのような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 'に入れておきたい主な理由は、' switch'ステートメントに自分のプロジェクトをビルドしたことです。私が記述したことを実行できるように、すべてを別のものに書き換えたくないということです。 – BoltKey
あなたが望むものとできるJavaScriptは、2つの異なるものです。あなたは現実に屈したり、あなたの人生をそれと戦ったりしたいですか?必要に応じて[TC39を通じてECMAScriptグループに申請する](https://tc39.github.io/process-document/)を歓迎します。時には、私たちが最もよく考えているアプローチは、うまくいかない場合があります。学び、適応し、動く – tadman