2017-05-10 7 views
-4

私は次のコードを持っている:JavaScriptのスイッチCaseステートメント状況

switch (command) { 
    case "greeting": { console.log('hello'); } break; 
    case "eat": { console.log('so gooood'); } break; 
    case "drink": { console.log('so gooood'); } break; 
    case "crunch": { console.log('so gooood'); } break; 
} 

が、最後の3例は、同じコードをoutputingされているが、私はそうするより組織の方法を探していました。私はそれを動作させるために使用できる良いテクニックを誰かが知っていますか?次のコードのような何か:

switch (command) { 
    case "greeting" : { console.log('hello') } break; 
    case "eat", "drink", "crunch": {console.log('so gooood') } break; 
} 

前のコードは動作しませんが、私はコードで何をしようとしている証明しようとしていました。基本的に、同じアクションに対して3つの別々のケースを持つのではなく、1つの特定のアクションを実行させるコマンドの値をまとめます。誰かが私がそれをやり遂げる方法を知っていますか?

+3

「switch」のマニュアルを読むことで、簡単にこれに答えることができます:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch – deceze

+0

応答@欺瞞私はこれがそのような状況の一つだとは思わない。私は、これを行うためにスイッチに組み込みメソッドがあるとは思っていませんでした。条件付きのハックトリックを使用してそれを行うと、さらに複雑なものをやろうとするときに、私はあなたの推理を理解していますが、それは勇気づけられていないと感じます。タイムリミットが終わると、私はあなたに答えを与えるでしょう。 – Webeng

答えて

1

フォールスルーの場合:

switch (command) { 
    case "greeting": 
    console.log('hello'); 
    break; 

    case "eat": 
    case "drink": 
    case "crunch": 
    console.log('so gooood'); 
    break; 
} 

switchは、最初に一致caseでコードの実行を開始し、breakに遭遇するまで続きます。それはあなたがbreakを入れている理由なので、以下のケースは実行されません。 breakを省略した場合、期待どおりに動作するフォールスルーケースが発生します。

{}内側case途中であった。

+0

あなたは本当にありがとうございます – Webeng

関連する問題