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

时间:2016-04-30 13:02:48

标签: javascript html loops for-loop

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

我有这个代码循环一个包含不同对象的数组,并将其中一个属性的内容与给定数组的内容进行比较。现在它工作正常,我唯一的问题是它只在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');    

}};

3 个答案:

答案 0 :(得分:1)

将内部循环的变量更改为myDoughnutChart.defaults.global.legend.display = false 并取j而不是break

return

使用Array#every进行了一些改进:

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
    }
}

答案 1 :(得分:1)

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

答案 2 :(得分:0)

return;替换为continue;

return终止该功能 break终止循环。
continue终止该迭代并继续进行下一次迭代。