Ich habe mich gefragt, ob es möglich ist, in einer Javascript-switch-Anweisung etwas Ähnliches wie 'this' zu verwenden, wenn Codeblöcke ausgeführt werden.

Beispielsweise:

switch(x) {
    case 'The pyramids of Giza':
        console.log(this);
        break;
    case 'The Leaning Tower of Pisa':
        console.log(this);
        break;
    default:
        console.log('Not found');
}

Ist das gleiche wie:

switch(x) {
    case 'The pyramids of Giza':
        console.log('The pyramids of Giza');
        break;
    case 'The Leaning Tower of Pisa':
        console.log('The Leaning Tower of Pisa');
        break;
    default:
        console.log('Not found');
}

Dies ist nur aus Effizienzgründen, danke!

2
Domenic Corso 22 Aug. 2015 im 16:15

3 Antworten

Beste Antwort

Sie haben Zugriff auf die Variable, die Sie in der Anweisung switch testen. Wenn x gleich "Die Pyramiden von Gizeh" ist, muss x auch der Wert sein, den Sie in diesem case verwenden möchten.

switch(x) {
    case 'The pyramids of Giza':
        console.log(x); // output: 'The pyramids of Giza'
        break;
    case 'The Leaning Tower of Pisa':
        console.log(x); // output: 'The Leaning Tower of Pisa'
        break;
    default:
        console.log('Not found');
}
5
David says reinstate Monica 22 Aug. 2015 im 13:18

Wenn Sie ein case: besuchen, ist der Wert des in case: angegebenen Werts immer die in der switch -Anweisung angegebene Variable. Dies liegt daran, dass ein case: nur besucht wird, wenn die Variable in erster Linie dem in case: angegebenen Wert entspricht. Sie wissen also, dass, wenn Sie diesen Fall besucht haben, der Wert der Variablen muss mit dem in case: angegebenen Wert übereinstimmen. Dies ist also der Code, nach dem Sie suchen:

switch(x) {
    case 'The pyramids of Giza':
        console.log(x);
        break;
    case 'The Leaning Tower of Pisa':
        console.log(x);
        break;
    default:
         console.log('Not found');
}
2
Noble Mushtak 22 Aug. 2015 im 13:18
switch(x) {
    case 'The pyramids of Giza':
        console.log(x);
        break;
    case 'The Leaning Tower of Pisa':
        console.log(x);
        break;
    default:
        console.log('Not Found');
}

Sollte den Trick machen

1
Frankie94 22 Aug. 2015 im 13:18