输入if语句时变量是否被重置?

时间:2017-02-10 13:18:32

标签: javascript if-statement for-loop

我有代码,我循环遍历图像的所有像素,这包括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语句。当我尝试获取变量xy并将其值放入新变量时,它们会给出1的值。但是,如果我console.log if语句之前的值,它们会给出另一个数字。

似乎变量会重置为for循环中赋予它们的值,因为当我将其起始值更改为"0"时,xy都返回{{ 1}},因此我的问题是:

输入if语句时,如何将这些变量重置为初始值?

1 个答案:

答案 0 :(得分:1)

我刚刚测试了一个类似的代码,带有2个FOR语句。工作正常,X和Y按预期更改值。

&#13;
&#13;
function matrix() {

var mx = "";  
var xrand = Math.floor( Math.random() * 20 + 2 );
var yrand = Math.floor( Math.random() * 20 + 2 );  

for (x = 1; x < xrand; x++) {
    for ( y = 1; y < yrand; y++) {
        mx += "[" + x + "," + y + "]";
    }
    mx += "\n";
}
console.log(mx);
}

matrix()
&#13;
&#13;
&#13;

你能确定: 1. img.width和img.height实际上产生了价值 2.访问函数不改变X,Y值 3.使用其他值而不是X或Y进行测试 4.删除除FOR和IF语句之外的所有内容,但将IF中的条件替换为if(true)之类的其他内容以便测试出来

我说在路径X和Y的某个地方被该代码中涉及的任何功能设置为给定值。