嗨,大家好,我希望你能帮助我。
我有这个代码循环一个包含不同对象的数组,并将其中一个属性的内容与给定数组的内容进行比较。现在它工作正常,我唯一的问题是它只在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');
}};
答案 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
终止该迭代并继续进行下一次迭代。