webentwicklung-frage-antwort-db.com.de

so vergleichen Sie zwei Zeichenfolgen in Javascript bei Bedingung

Ich habe Probleme, mich zu erinnern, wie man diese beiden Zeichenfolgen in einer if-Anweisung vergleicht. Was ich tun muss, ist zu prüfen, ob meine Variable compare gleich page1 oder page2 ist. Wenn nicht, fahren Sie mit der else-Anweisung fort. 

var compare = "page3";

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

1

Sie können jede Option prüfen.

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

Oder Sie könnten ein Array verwenden und mit einem existenziellen Quantifizierer wie Array#some vergleichen, 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";
}

2
Nina Scholz

Immer wenn Sie eine if-Bedingung auf mehrere Dinge prüfen müssen, müssen Sie jede Bedingung separat schreiben. Also muss der Test geschrieben werden als:

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

Wenn Sie über eine einzelne Variable verfügen, die viele verschiedene Werte enthalten kann, kann die Verwendung einer switch-Anweisung logischer und effizienter sein, da der Wert der Variablen nur einmal nachgeschlagen werden muss. 

Denken Sie auch daran, dass Strings Literale sind und "page1" nicht gleich "Page1" ist. Um einen Vergleich zu machen, bei dem die Groß- und Kleinschreibung nicht beachtet wird, können Sie alle Werte zuerst auf Klein- oder Großbuchstaben setzen und dann miteinander vergleichen (wie hier gezeigt):

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;
}
1
Scott Marcus