当运行代码空间时,试图在chrome中运行的JavaScript代码出现

当运行代码空间时,试图在chrome中运行的JavaScript代码出现,javascript,css,Javascript,Css,作为javaScript编码的初学者,我编写了一些代码,当我试图运行代码时,它正在执行,每次都转到else块而不是if块。我找到了问题发生的地方,但我不知道如何解决它。单击颜色时,数字之间有空格,但else语句始终在执行。你可以在下面看到我的问题来了解一些情况。我怎样才能使这个代码工作?请帮助我,提前谢谢 var colors=[ "rgb(255,0,0)", "rgb(255,255,0)", "rgb(0,255,0)", "rgb(0,25

作为javaScript编码的初学者,我编写了一些代码,当我试图运行代码时,它正在执行,每次都转到else块而不是if块。我找到了问题发生的地方,但我不知道如何解决它。单击颜色时,数字之间有空格,但else语句始终在执行。你可以在下面看到我的问题来了解一些情况。我怎样才能使这个代码工作?请帮助我,提前谢谢

var colors=[
      "rgb(255,0,0)",
      "rgb(255,255,0)",
      "rgb(0,255,0)",
      "rgb(0,255,255)",
      "rgb(0,0,255)",
      "rgb(255,0,255)",
 ];

var squares=document.querySelectorAll(".square");

var pickedColor=colors[4];

for(var i=0;i<squares.length;i++){

   squares[i].style.background=colors[i];

   squares[i].addEventListener("click",function(){

      var clickedColor=this.style.back
      console.log("clicked color is"+clickedColor);
      console.log("picked color is "+pickedColor);

      if(clickedColor===pickedColor)
      {
         alert("correct");
      }
      else
      {
         alert("wrong");
      }
    })
 }
问题:下面的rgb不匹配,添加了空格。我们如何删除这些空间


单击的颜色是rgb0,0,255,拾取的颜色是rgb0,0255

我不是javascript专家,但是如果在if语句中使用==而不是==,您可能会运气更好。

您可以将clickedColor值拆分为字符串数组,然后将其值设置为数组的联接,而不使用分隔符

e、 g-

var ccArray = clickedColor.split(" "); // split by space character
var newValue = ccArray.join(""); // join with a zero length` delimiter

   then, newValue should be used for the comparison
所以很多事情, 一:如Guest01所述,通常坚持==。 第二:数组不应包含最后一个逗号:

var colors=[
      "rgb(255,0,0)",
      "rgb(255,255,0)",
      "rgb(0,255,0)",
      "rgb(0,255,255)",
      "rgb(0,0,255)",
      "rgb(255,0,255)"
    ];

第三:要删除空格,您可以使用string.replace/\s/g,

这可能会对您有所帮助:我有点惊讶您从这个.style.back中得到了任何东西……可能是