2017-02-18 1 views
0

Je n'arrive pas à me rappeler comment comparer ces deux chaînes dans une instruction if. Ce que je suis la chaîne à faire est de vérifier si ma variable compare est égale à page1 ou page2 sinon, passez à l'instruction else.comment comparer deux chaînes en javascript si la condition

var compare = "page3"; 
 

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

+0

'comparer === « page2 "'? On dirait une question étrange pour vous d'avoir. – Carcigenicate

+0

comparer === "page1" || comparer === "page2" – baao

Répondre

1

Vous pouvez vérifier toutes les options.

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

Ou vous pouvez utiliser un tableau et vérifier avec un quantificateur existentiel comme Array#some contre, comme

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

Chaque fois que vous avez plusieurs choses à vérifier dans un if condition, vous devez écrire chaque condition séparément de l'autre. Ainsi, le test doit être écrit:

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

Lorsque vous avez une seule variable qui peut contenir de nombreuses valeurs différentes, en utilisant une instruction switch peut être plus logique et plus efficace car il doit regarder que la valeur de la variable une fois.

De même, rappelez-vous que les chaînes sont des littéraux et que "page1" n'est pas égal à "Page1". Pour faire une comparaison qui est insensible à la casse, vous pouvez forcer toutes les valeurs à la baisse (ou supérieure) cas d'abord, puis les vérifier les uns contre les autres (comme indiqué ici):

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; 
}