J'ai du mal à me rappeler comment comparer ces deux chaînes dans une instruction if. Ce que je dois faire, c'est vérifier si ma variable compare
est égale à page1
ou page2
sinon, passez à l'instruction else.
var compare = "page3";
if (compare === "page1" || "page2") {
document.body.innerHTML = "github url";
} else {
document.body.innerHTML = "non-github url";
}
Vous pouvez vérifier chaque option.
if (compare === "page1" || compare === "page2") {
Ou vous pouvez utiliser un tableau et vérifier avec un quantificateur existentiel tel que Array#some
against, 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";
}
Chaque fois que vous avez plusieurs tâches à archiver dans une condition if
, vous devez écrire chaque condition séparément de l'autre. Donc, le test doit être écrit comme:
// If compare equals "page1" OR compare equals "page2"
if (compare === "page1" || compare === "page2") {
Lorsque vous avez une seule variable pouvant contenir de nombreuses valeurs différentes, l'utilisation d'une instruction switch
peut s'avérer plus logique et plus efficace, car elle n'a qu'à rechercher la valeur de la variable une fois.
En outre, rappelez-vous que les chaînes sont des littéraux et que "page1" n'est pas égal à "Page1" . Pour effectuer une comparaison qui ne respecte pas la casse, vous pouvez forcer toutes les valeurs à mettre les majuscules en minuscule (ou majuscules) en premier, puis les comparer les unes aux autres (comme indiqué ci-dessous):
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;
}