[英]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');
}};
将内部循环的变量更改为j
并break
而不是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.