简单的Javascript for循环挂起浏览器

时间:2015-05-10 23:38:32

标签: javascript for-loop hang

当迭代次数设置为5时,此Javascript会挂起浏览器。但是,如果设置为4,则它会正常运行。有什么问题?

var sample = [  
[1,2,3],
[4,5,6],
[7,8,9]]; 

for(i = 0; i < 5; i++)
    swapColumn(sample, 0, 1);   

function swapColumn(array, x, y)
{
    for(i = 0; i < array.length; i++)
    {
        temp = array[i][x];
        array[i][x] = array[i][y];
        array[i][y] = temp; 
    }
}

1 个答案:

答案 0 :(得分:3)

不要忘记使用var来声明变量

var sample = [  
[1,2,3],
[4,5,6],
[7,8,9]]; 

for(var i = 0; i < 5; i++)
    swapColumn(sample, 0, 1);   

function swapColumn(array, x, y)
{
    for(var i = 0; i < array.length; i++)
    {
        var temp = array[i][x];
        array[i][x] = array[i][y];
        array[i][y] = temp; 
    }
}

否则,它们将被视为全局变量,并且每次输入i

时,您实际上都会覆盖swapColumn