2017-05-10 2 views
-4

Ich habe den folgenden Code:JavaScript-Switch Case-Anweisung Situation

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; 
} 

aber die letzten drei Fälle sind outputing den gleichen Code, und ich wollte eine organisierte Art und Weise finden, dies zu tun. Kennt jemand eine gute Technik, die ich verwenden kann, damit es funktioniert? So etwas wie den folgenden Code:

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

Der vorherige Code funktioniert nicht, aber ich habe versucht, zu zeigen, was ich versuche, mit dem Code zu tun. Im Grunde gruppieren Sie eine Reihe von Werten für den Befehl, die eine bestimmte Aktion ausführen, statt 3 separate Fälle für die gleiche Aktion zu haben. Würde jemand wissen, wie ich das machen könnte?

+3

Sie könnten dies leicht selbst beantwortet haben, indem Sie das Handbuch für 'switch' gelesen haben: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch – deceze

+0

danke für die Antwort @ Ich glaube nicht, dass dies eine dieser Situationen ist. Ich dachte nicht, dass es eine eingebaute Methode im Switch gibt, um das zu erreichen und wenn Konditional und Hacky-Tricks verwendet werden, und manchmal, wenn man versucht komplexere Dinge zu machen, vergisst man die einfachen Lösungen, weshalb Ich habe das Gefühl, dass es nicht gerechtfertigt war, obwohl ich Ihre Argumentation verstehe. Ich werde Ihnen die akzeptierte Antwort geben, wenn das Timelimit endet. – Webeng

Antwort

1

Fall-through-Fälle:

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

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

switch wird Ausführen von Code beim ersten Start caseund weiterhin passend, bis er ein break trifft. Das ist der Grund, warum Sie break s eingeben, damit die folgenden Fälle nicht ausgeführt werden. Wenn Sie die break weglassen, erhalten Sie Fall-Through-Fälle, die wie erwartet funktionieren.

Die {} innerhalb case waren übrigens unnötig.

+0

Sie sind sehr richtig danke Ihnen dafür – Webeng