【发布时间】:2017-02-10 13:18:31
【问题描述】:
我有代码循环遍历图像的所有像素,这包括 2 个 for 循环:
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;
}
}
}
此代码对所有单词进行编码,直到 if 语句。当我尝试获取变量 x 和 y 并将它们的值放入新变量中时,它们给出了 1 的值。但是,如果我 console.log if 语句之前的值,它们会给出另一个数字。
似乎变量被重置为在 for 循环中赋予它们的值,因为当我将它们的起始值更改为 "0"、x 和 y 时都返回 0,因此我的问题是:
输入if语句时这些变量怎么可能重置为初始值?
【问题讨论】:
-
x和y是全局声明的。它们是否被deepCount覆盖? -
你能分享确切的(相关的)代码而不是描述吗?
x和y不可能在count > spotSize处更改它们的值。 -
您需要提供真实的minimal reproducible example。创建一个的过程可能会为您确定问题。
-
@Mouser 它们不会被深度计数覆盖
-
不要全局声明 x 和 y 并确保 deepCount 不会更改它们
标签: javascript if-statement for-loop