2017-08-30 110 views
-3

我尝试了不同的解决方案,无法找出为什么我无法将字符串与数组字符串进行比较。无法将字符串与数组进行比较

这是我曾尝试:

function checkWin(){ 
 
    let emptyword =["h,","e,","l,","l","o"] 
 
    let computerword= "hello"; 
 
    var a = emptyword.join(""); 
 
    let b = computerword.toString(); 
 
    let c = a.toString(); 
 

 
    console.log("computerword :" + b); 
 
    console.log("emptyword is:" + c); 
 

 
    if(b === c) { 
 
    console.log("someone has won"); 
 
    } else if (b != c) { 
 
    console.log("b is not same as c");      
 
    } 
 
} 
 
checkWin()

我不能去“有人曾荣获”作为控制台打印值超出然而,当条件是不正确的两个是相同的值,即hellohello

任何支持是最受欢迎的。

+0

'让C = a.toString();'一已经是一个字符串这样的toString()也没有必要有 – epascarello

+0

您的控制台线应弹出出来,并告诉你错误.... – epascarello

+0

我同意你的感谢指出, – Wazzie

回答

3

这是一个错字。您的阵列是元件

  • 的列表中的 “H”
  • 的 “e,”
  • “L”
  • “L”
  • “○”

的前三个元素包含逗号作为字符串的一部分。

正确的代码是:

function checkWin() { 
 
    let emptyword = ["h", "e", "l", "l", "o"] 
 
    let computerword = "hello"; 
 
    var a = emptyword.join(""); 
 
    let b = computerword; 
 

 
    console.log("computerword: " + b); 
 
    console.log("emptyword is: " + a); 
 

 
    if (a === b) { 
 
    console.log("someone has won"); 
 
    } else if (a !== b) { 
 
    console.log("b is not same as c"); 
 
    } 
 

 
} 
 

 
checkWin()

变化

let emptyword = ["h,", "e,", "l,", "l", "o"] 

let emptyword = ["h", "e", "l", "l", "o"] 

修复它。

+0

你的改变XXX行是错误的....看起来你是告诉OP,它是间距问题。 – epascarello

+0

我的不好,我手工输入(出于某种原因),我想我的手指太聪明,我自己的好 –

+0

var a = emptyword.join(“”); – Wazzie

0

我已经通过“Array.match()”解决了我的问题,基本上,如果它找不到匹配项,它将在找到匹配项时返回'null',它将显示匹配项。

这里是我解决我的这个难题

function checkWin(){ 

      var a = emptyword.join(""); 
      var b = computerword; 
      var c= b.match(a); 

      // for debug purpose only  
     console.log("match word so far...:"+ c); 

    if(c != null) 
     { 
      console.log("match win"); 
      // clear the previous information 
      document.getElementById("correctguess").innerHTML =" "; 

      document.getElementById("correctguess").innerHTML ="You have Won well done"; 

     } 
     // for debug purpose only 
     console.log("emptyword is:"+ a); 
     console.log("computerword is: "+ b); 


}// end CheckWin 
相关问题