for循环持续无限javascript

时间:2017-06-30 16:08:16

标签: javascript arrays loops for-loop

我的代码中存在问题:

var row = ["1","2","3","4","5"];
var column = ["1","2","3","4","5"];

var arrayLength = row.length;
var arrayLength2 = column.length;
for (var i = 0; i < arrayLength; i++) {
    for (var e = 0; e < arrayLength2; e++) {
        var samples = document.querySelectorAll('[data-row-id="'+row[i]+'"][data-column-id="'+column[e]+'"]');

        for(var i = 0; i < samples.length; i++) {
            var sample = samples[i];

            sample.setAttribute('data-sample-id', row);
            console.log("Colore cambiato");
        }
    }
}

当我运行它时,循环持续无限,并且console.log被多次调用

错误在哪里?谢谢!

2 个答案:

答案 0 :(得分:3)

问题在于,你的最内层循环使用与最外层循环相同的i循环变量,并且它不断更改i,以便外循环永远不会完成。

将内循环上的变量更改为您尚未在同一范围内使用的其他标识符。

答案 1 :(得分:1)

您使用相同的循环i两次嵌套,因此它无限运行,因为它总是在内循环中重置i

使用其他内容而不是k

   for(var k = 0; k < samples.length; k++) {
        var sample = samples[k];

        sample.setAttribute('data-sample-id', row);
        console.log("Colore cambiato");
    }