2017-06-26 2 views
-1

Ich deklariere eine Variable contactNumber außerhalb einer switch-Anweisung und versuche dann, sie innerhalb der switch-Anweisung zuzuweisen. Wenn es jedoch die Zuordnung erreicht, bekomme ich einen Fehler SyntaxError: Unexpected identifier auf der Zuweisungszeile in der switch-Anweisung ausgeführtKann nicht auf Variablen zugreifen, die außerhalb von Switch deklariert sind.

function helplineContactMessageForCountryCode(countryCode) { 

    var contactNumber = '' 
    switch (countryCode) { 
     case 'NG': 
     contactNumber = '234-01-772-2200' 
     break 

     case 'UG': 
     contactNumber = '0800-100-330' 
     break 

     case 'US' 
     contactNumber = '1-800-232-4636' 
     break 

     case 'ZA': 
     contactNumber = '0800-012-322' 
     break 

     default: 
     //Return empty string if no country code is found 
     return '' 
    } 
    return 'You can try calling the Toll-Free HIV and AIDS Helpline and speak to a human - ' + contactNumber 
} 
+0

Nehmen Sie das 'return' aus dem Schalter und ersetzen Sie es mit' contactNumber = ''; Pause; 'Oder Sie können die' default' direkt aus dem Schalter nehmen. Und es gibt eine fehlende ':' nach 'US' – Christian4423

+3

Typo? Missing ':' nach 'case 'US''. –

Antwort

0

Sie vermissen eine : nach der "US" case.

function helplineContactMessageForCountryCode(countryCode) { 
 

 
    var contactNumber = '' 
 
    switch (countryCode) { 
 
    case 'NG': 
 
     contactNumber = '234-01-772-2200'; 
 
     break; 
 
    case 'UG': 
 
     contactNumber = '0800-100-330'; 
 
     break; 
 
    case 'US': 
 
     contactNumber = '1-800-232-4636'; 
 
     break; 
 
    case 'ZA': 
 
     contactNumber = '0800-012-322'; 
 
     break; 
 
    default: 
 
     contactNumber = contactNumber; 
 
     break; 
 
    } 
 
    return 'You can try calling the Toll-Free HIV and AIDS Helpline and speak to a human - ' + contactNumber 
 
}

+1

Bitte markieren/stimmen Sie, um als Tippfehler zu schließen, anstatt zu antworten. – Bergi

+1

Omg lol Ich muss ungefähr eine Stunde verloren haben. Danke für das Aufzeigen! – Lneuner

0

Sie fehlen : bei ‚USA‘. Nachdem Sie es hinzugefügt haben, sollte es als besucht arbeiten.

Ich würde auch Objektkarte anstelle von Switch-Anweisung für Sie genaue Verwendung Fall vorschlagen, um Code shorten zu machen und schöner

function helplineContactMessageForCountryCode(countryCode) { 
    const codeMap = { 
    NG: '234-01-772-2200', 
    UG: '0800-100-330', 
    US: '1-800-232-4636', 
    ZA: '1-800-232-4636' 
    }; 

    var number = codeMap[countryCode]; 
    if (number) { 
    return 'You can try calling the Toll-Free HIV and AIDS Helpline and speak to a human - ' + number; 
    } 
    return ''; 
} 

in Beispiel codeMap innen helplineContactMessageForCountryCode gesetzt ist, aber idealerweise sollte er irgendwo anders deklariert werden.

+0

Bitte nur als Tippfehler kennzeichnen, anstatt zu antworten. – Bergi

Verwandte Themen