Wie würden Sie a verwenden, switch
case
wenn Sie im selben Fall auf a oder b testen müssen ?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Wie würden Sie a verwenden, switch
case
wenn Sie im selben Fall auf a oder b testen müssen ?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Antworten:
Sie können Fall-Through verwenden:
quelle
Da die anderen Antworten erklärten, wie es geht, ohne tatsächlich zu erklären, warum es funktioniert:
Wenn der
switch
Befehl ausgeführt wird, findet er die erste übereinstimmendecase
Anweisung und führt dann jede Codezeile nach dem Wechsel aus, bis er entweder einebreak
Anweisung oder das Ende derswitch
(oder einereturn
Anweisung zum Verlassen der gesamten enthaltenen Funktion) trifft . Wenn Sie das absichtlich weglassen,break
damit auch der Code unter dem nächstencase
ausgeführt wird, spricht man von einem Durchfall . Also für die Anforderung des OP:Das Vergessen,
break
Anweisungen einzuschließen, ist ein ziemlich häufiger Codierungsfehler und das erste, wonach Sie suchen sollten, wenn Sieswitch
nicht wie erwartet funktionieren. Aus diesem Grund geben einige Leute gerne einen Kommentar ein, um "durchfallen" zu sagen, um deutlich zu machen, wenn break-Anweisungen absichtlich weggelassen wurden. Ich mache das im folgenden Beispiel, da es etwas komplizierter ist und zeigt, wie einige Fälle Code enthalten können, der ausgeführt werden soll, bevor sie durchfallen:Sie können auch (optional) einen
default
Fall einschließen , der ausgeführt wird, wenn keiner der anderen Fälle übereinstimmt. Wenn Sie keinendefault
und keine Fälle angeben, geschieht nichts. Sie können (optional) auf den Standardfall zurückgreifen.Wenn in meinem zweiten Beispiel
someVar
1 angezeigt wird, wird aufgerufen,someFunction()
und dann werden vier Warnungen angezeigt, da mehrere Fälle durchlaufen werden, von denen einige Warnungen enthalten. IstsomeVar
3, 4 oder 5, würden Sie zwei Warnungen sehen. WennsomeVar
7 ist, sehen Sie "Etwas anderes" und wenn es 8 oder ein anderer Wert ist, sehen Sie "Das Ende".quelle
Sie müssen zwei
case
Etiketten erstellen.Die Steuerung wechselt vom ersten zum zweiten Label, sodass beide denselben Code ausführen.
quelle
Du musst es wechseln!
quelle
Vergiss
switch
undbreak
lass uns spielen mitif
. Und anstatt zu behauptenLassen Sie uns mehrere Arrays mit Fällen erstellen und mit Array.prototype.includes () überprüfen.
quelle
Verwenden Sie Kommas, um Groß- und Kleinschreibung zu trennen
quelle