2017-02-18 10 views
0

У меня возникли проблемы с отзывом, как сравнивать эти две строки в выражении if. То, что мне нужно, это проверить, соответствует ли моя переменная comparepage1 или page2, если нет, перейдите к инструкции else.Как сравнить две строки в javascript, если условие

var compare = "page3"; 
 

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

+0

'сравнить ===«стр.2 «'? Кажется странным вопросом для вас. – Carcigenicate

+0

сравнение === "page1" || сравните === "page2" – baao

ответ

1

Вы можете проверить все варианты.

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

Или вы можете использовать массив и проверить с экзистенциальным квантором, как Array#some против, как

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

В любое время у вас есть несколько вещей, чтобы проверить в if условие, вы должны написать каждое условие отдельно от другого. Таким образом, тест должен быть написан как:

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

Когда у вас есть одна переменная, которая может содержать множество различных значений, используя switch заявление может быть более логичным и более эффективным, так как он имеет только посмотреть значение переменная один раз.

Также, помните, что строки являются литералами, а «page1» не равно «Page1». Для того, чтобы сделать сравнение, которое не чувствительны к регистру, вы можете заставить все значения ниже (или верхний) случай первый, а затем проверить их друг против друга (как показано здесь):

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; 
} 
Смежные вопросы