【问题标题】:JavaScript code trying to run in chrome while running the code spaces are occured发生在运行代码空间时尝试在 chrome 中运行的 JavaScript 代码
【发布时间】:2017-07-01 03:48:13
【问题描述】:

作为 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 不匹配并添加了空格。我们如何删除这些空格?

点击的颜色是rgb(0, 0, 255),选择的颜色是rgb(0,0,255)

【问题讨论】:

标签: javascript css


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以将 clickedColor 值拆分为字符串数组,然后将其值设置为不带分隔符的数组的连接。

    例如-

    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
    

    【讨论】:

      【解决方案3】:

      这么多东西,
      一:如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, '')

      【讨论】:

        猜你喜欢
        • 2017-01-28
        • 2016-09-27
        • 1970-01-01
        • 2021-08-11
        • 2017-12-16
        • 2019-05-18
        • 2014-06-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多