2014-12-13 109 views
0

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

下面是代码:

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'进行比较。任何想法?

感谢

+1

请发表您所有的代码,特别是让你相信,只有6相比,你clickedX代码。 – null 2014-12-13 13:13:26

+0

什么是“占用”应该代表for循环结束?是否有任何点碰撞? – Abovestand 2014-12-13 13:14:21

回答

0

你覆盖所以只有最近比较体现在循环结束占领每次迭代的价值。相反,试试这个:

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

这里占用可以设置为true,但一旦真实永远不会返回false。

0

也许..

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

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