【问题标题】:how to compare two strings in javascript if condition如果条件,如何在javascript中比较两个字符串
【发布时间】:2021-10-14 09:19:22
【问题描述】:

我不记得如何在 if 语句中比较这两个字符串。我要做的是检查我的变量compare 是否等于page1page2,如果不是,请转到else 语句。

var compare = "page3";

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

【问题讨论】:

  • compare === "page2" ?对你来说这似乎是一个奇怪的问题。
  • 比较 === "page1" ||比较 === "page2"

标签: javascript if-statement string-comparison


【解决方案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";
}

【讨论】:

    【解决方案2】:

    试试

    if( ["page1", "page2"].includes(compare) ){...}
    

    var compare = "page3";
    
    if( ["page1", "page2"].includes(compare) ) {
      document.body.innerHTML = "github url";
    } else {
      document.body.innerHTML = "non-github url";
    }

    【讨论】:

      【解决方案3】:

      任何时候你有多个东西要检查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;
      }
      

      【讨论】:

        【解决方案4】:

        a.localeCompare(b) 是比较大字符串的另一种很酷的方法

        function areEqual(a, b){
        
        
          if (a.length !== b.length) {
                 return false;
          }
        
          return a.localeCompare(b) === 0;
        }
        
        
        if(areEqual(a,b)){...}
        

        【讨论】:

          猜你喜欢
          • 2013-01-24
          • 1970-01-01
          • 2022-06-29
          • 2010-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多