在for循环中,Javascript函数无限期运行

时间:2017-09-28 11:04:56

标签: javascript

在我的页面上,我使用<div>向页面添加了javascript个元素。内容和数量来自服务器上文件夹的内容。页面有多列,我想将每个新的列添加到最小的列。我创建了这个函数来确定哪个列是最小的。在单个请求上运行/测试时,该功能按预期工作。当我在“for-loop”中使用需要添加的元素调用函数时,它会无限期地运行?

for-loop的

for(i = 0; i < importedElement.length; i++){}

功能是

function findSmallestColumn() {
    var columns = document.getElementById("container").children;
    var columnsHeight = [];
    for (i = 0; i < numberOfColumns; i++) {
        columnsHeight[i] = columns[i].offsetHeight;
    }
    var min = Math.min(...columnsHeight);
    var minIndex = columnsHeight.indexOf(min) + 1;
    return minIndex;
}

*“numberOfColumns是附有数字的var。

1 个答案:

答案 0 :(得分:3)

你的函数中有第二个for循环,它会无限增加i。将i替换为j或任意两个for循环中的任何其他变量名称,它将按预期工作。

如果使用i关键字在for循环内部声明它们,则可以使用相同的变量名let,该关键字仅在当前块中声明变量。