2017-08-30 2 views
-3

Ich habe verschiedene Lösungen ausprobiert und kann nicht herausfinden, warum ich eine Zeichenfolge nicht mit einer Array-Zeichenfolge vergleichen kann. HierKonnte keine Zeichenfolge mit Array vergleichen

ist, was ich habe versucht:

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()

vermag ich nicht zu bekommen, um „jemand hat gewonnen“, wie die Bedingung jedoch nie wahr ist, wenn die Werte in der Konsole ausdrucken beide sind die gleichen Werte wie hello und hello.

Jede Unterstützung ist sehr willkommen.

+0

'lassen c = a.toString();' a ist bereits ein String so das toString() nicht auch dort Linie Pop sollte – epascarello

+0

Ihre Konsole benötigt heraus und zeige dir den Fehler .... – epascarello

+0

Ich stimmte mit dir dank für das darauf hin, dass – Wazzie

Antwort

3

Es ist ein Tippfehler. Ihr Array ist die Liste der Elemente

  • "h"
  • "e"
  • "l"
  • "l"
  • "o"

Die Die ersten drei Elemente haben Kommata als Teil der Zeichenfolge.

Das würde richtigen Code sein:

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()

ändern

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

zu

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

es zu beheben.

+0

Ihre Änderung XXX Zeile ist falsch .... Sieht aus wie Sie dem OP sagen, dass es Abstand Problem ist. – epascarello

+0

Mein schlechtes, ich tippte es aus der Hand (aus irgendeinem Grund) und ich denke, meine Finger waren zu schlau für meine eigenen guten –

+0

var a = emptyword.join (""); – Wazzie

0

Ich habe mein Problem von "Array.match()" im Grunde gelöst, wenn es keine Übereinstimmung findet, wird es eine Null zurückgeben, wenn es eine Übereinstimmung findet, wird es das Übereinstimmungswort anzeigen.

hier ist meine Lösung für mein dieses Puzzle

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 
Verwandte Themen