Javascript 在输入if语句时重置变量?
我有一个代码,我循环一个图像的所有像素,这包括2个循环:Javascript 在输入if语句时重置变量?,javascript,if-statement,for-loop,Javascript,If Statement,For Loop,我有一个代码,我循环一个图像的所有像素,这包括2个循环: for (x = 1; x < img.width; x++) { visited[x] = new Array(); for (y = 1; y < img.height; y++) { visited[x][y] = false; count = deepCount(img, x, y, visited, 0); if (count > spotSize
for (x = 1; x < img.width; x++) {
visited[x] = new Array();
for (y = 1; y < img.height; y++) {
visited[x][y] = false;
count = deepCount(img, x, y, visited, 0);
if (count > spotSize) {
spotX = x;
spotY = y;
spotSize = count;
}
}
}
(x=1;x{
已访问[x]=新数组();
对于(y=1;y光斑大小){
spotX=x;
spotY=y;
斑点大小=计数;
}
}
}
这将对所有单词进行编码,直到
if
语句。当我尝试获取变量x
和y
并将它们的值放入新变量时,它们给出1
的值。但是,如果Iconsole.log
if语句之前的值,它们会给出另一个数字
看起来变量被重置为for循环中给定的值,因为当我将它们的起始值更改为
“0”
,x
和y
都返回0
,因此我的问题是:
在输入if语句时,这些变量怎么可能重置为初始值?我刚刚测试了一个类似的代码,其中2个用于语句。工作正常,X和Y按预期更改值
函数矩阵(){
var mx=“”;
var xrand=Math.floor(Math.random()*20+2);
var yrand=Math.floor(Math.random()*20+2);
对于(x=1;x 矩阵()
x
和y
是全局声明的。它们是否在deepCount
中被覆盖?您能否共享准确(相关)的代码而不是描述?x
和y
不可能在count>spotSize
处更改它们的值。您需要提供一个真实的值。创建一个的过程可能会为您确定问题所在。@Mouser它们不会在deep count中被覆盖请勿全局声明x和y,并确保deepCount不会更改它们