【问题标题】:Javascript : Comparing Arrays values to a variableJavascript:将数组值与变量进行比较
【发布时间】:2014-12-13 13:04:59
【问题描述】:

在我的程序中,我必须将数组值与变量进行比较,但看起来我的数组只是将最后一个值与变量进行比较。我应该如何继续比较所有这些?

代码如下:

for(var n=0; n<arrayLength; n++) {
    console.log(occupiedArray[n][0]);
    if(occupiedArray[n][0] == clickedX  && occupiedArray[n][1] == clickedY ) {
        occupied = true;
    } else {
        occupied = false;
    }
}

这是我的数组:

var occupiedArray = [[4,0],
                     [5,0],
                     [6,0]];

当我使用 console.log 时,它会像我想要的那样显示 4、5、6,但它只是将“6”值与我的变量“clickedX”进行比较。任何的想法?

谢谢

【问题讨论】:

  • 请贴出你所有的代码,尤其是那些让你相信只有6个与你的clickedX相比的代码。
  • for 循环末尾的“占用”应该代表什么?是否有任何点碰撞?

标签: javascript arrays loops for-loop


【解决方案1】:

您正在覆盖每次迭代的占用值,因此只有最近的比较才会反映在循环结束时。相反,试试这个:

for(var n=0; n<arrayLength; n++) {
    console.log(occupiedArray[n][0]);
    if(occupiedArray[n][0] == clickedX  && occupiedArray[n][1] == clickedY ) {
        occupied = true;
    }
}

这里的占用可以设置为真,但一旦为真就永远不能返回假。

【讨论】:

    【解决方案2】:

    也许……

    occupied = false;
    for(var n=0; n<arrayLength; n++) {
        if((occupiedArray[n][0] == clickedX)  && (occupiedArray[n][1] == clickedY) ) {
            occupied = true;
            break;
        }
    }
    

    如果发现被占用,退出循环

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 1970-01-01
      • 2013-06-04
      • 2022-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      相关资源
      最近更新 更多