2017-02-18 2 views
0

Ich habe Probleme beim Abrufen, wie diese beiden Zeichenfolgen in einer if-Anweisung zu vergleichen. Was ich tun soll, ist zu überprüfen, ob meine Variable compare gleich page1 oder page2 ist, wenn nicht, gehe zur else-Anweisung.wie zwei Strings in Javascript zu vergleichen, wenn Bedingung

var compare = "page3"; 
 

 
if (compare === "page1" || "page2") { 
 
    document.body.innerHTML = "github url"; 
 
} else { 
 
    document.body.innerHTML = "non-github url"; 
 
}

+0

'vergleichen ===„page2 "'? Scheint wie eine seltsame Frage für dich zu haben. – Carcigenicate

+0

vergleichen === "Seite1" || vergleichen === "Seite2" – baao

Antwort

1

könnten Sie alle Optionen prüfen.

if (compare === "page1" || compare === "page2") { 

Oder Sie könnten ein Array und überprüfen Sie mit einem Existenzquantor wie Array#some gegen, wie

if (["page1", "page2"].some(a => a === compare)) { 

var compare = "page3"; 
 

 
if (compare === "page1" || compare === "page2") { 
 
    document.body.innerHTML = "github url"; 
 
} else { 
 
    document.body.innerHTML = "non-github url"; 
 
}

1

Immer, wenn Sie mehrere Dinge verwenden in ein if zu überprüfen Bedingung, Sie müssen jede Bedingung getrennt von der anderen schreiben. So muss der Test wie folgt geschrieben werden:

// If compare equals "page1" OR compare equals "page2" 
if (compare === "page1" || compare === "page2") { 

Wenn Sie eine einzelne Variable, die viele verschiedene Werte enthalten, kann eine switch Anweisung sein logischer und effizienter, da sie nur den Wert suchen hat die Variable einmal.

Außerdem, erinnern, dass Zeichenfolgen Literale sind und "page1" nicht gleich "Page1". Um einen Vergleich zu machen, die Groß- und Kleinschreibung ist, können Sie alle Werte zwingen zu senken (oder obere) Fall zuerst und dann prüfen, gegeneinander (wie hier dargestellt):

switch (compare.toLowerCase()) { 
    case "page1" : 
     // Do work here 
     break; 
    case "page2" : 
     // Do work here 
     break; 
    case "page3" : 
     // Do work here 
     break; 
    default : 
     // Do work here 
     break; 
} 
Verwandte Themen