繁体   English   中英

我的Java for循环在1次迭代后停止

[英]My Javascript for loop stops after 1 iteration

大家好,我希望你能帮助我。

我有这段代码,该代码循环遍历具有不同对象的数组,并且将其中一个属性的内容与给定数组的内容进行比较。 现在它可以正常工作,我唯一的问题是它仅在1次迭代后就停止了(这发生在第一个循环中,而不是第二个循环中)。

这是代码。 我希望你们能帮助我。

var checkIfChecked = function () {

for (var i=0; i < recepten.length; i++) {

    var kanIkHetMaken = true;

    var ditRecept = recepten[i];

    for (var i=0; i < ditRecept.nodigeIngredienten.length; i++) {

        var dezeIngredienten = ditRecept.nodigeIngredienten[i];

        var index = checked.indexOf(dezeIngredienten);

        console.log(index);

        if (index === -1) {

            kanIkHetMaken = false;
            return;

        }

    }

    if (kanIkHetMaken === true) {

    document.getElementById(ditRecept.id).style.display = "block";

    }

    console.log('1e recept gedaan');    

}};

将内部循环的变量更改为jbreak而不是return

for (var j = 0; j < ditRecept.nodigeIngredienten.length; j++) { // change i to j
    var dezeIngredienten = ditRecept.nodigeIngredienten[j]; // use j
    var index = checked.indexOf(dezeIngredienten);
    console.log(index);
    if (index === -1) {
        kanIkHetMaken = false;
        break;  // exit the inner loop
    }
}

Array#every有一点改进:

kanIkHetMaken = ditRecept.nodigeIngredienten.every(function (dezeIngredienten) {
    return ~checked.indexOf(dezeIngredienten);
});

您在两个循环中都使用了相同的变量i 因此,当内部循环结束时,外部循环检查i的更新值以进行比较。 j内部循环使用不同的变量

更换return; continue;

return终止功能。
break终止循环。
continue终止该迭代,然后继续进行下一个迭代。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM