gpt4 book ai didi

仅循环内的 Javascript 循环第一次执行

转载 作者:行者123 更新时间:2023-12-03 02:40:36 25 4
gpt4 key购买 nike

请参阅下面我的 js 验证函数。

function validate_submit(PassForm) {
var bGo = false;
var rankcount = document.getElementById('rankCount').value;

var j = 0;

var iRankcount0 = document.getElementById('indRankcount0').value;
var iRankcount1 = document.getElementById('indRankcount1').value;
var iRankcount2 = document.getElementById('indRankcount2').value;

var ijs = 0;
var itemp = ijs;

for (i = 0; i < rankcount; i++) {
alert("begin i = " + i);
if (i == 0) {
indRankcount = iRankcount0;
}
else if (i == 1) {
alert('indRankcount: ' + indRankcount);
indRankcount = iRankcount1;
alert('iRankcount1: ' + iRankcount1);
alert('indRankcount: ' + indRankcount);
}
else if (i == 2) {
indRankcount = iRankcount2;
}
alert('before sec loop indRank: ' + indRankcount);
alert('before sec loop itemp: ' + itemp);
for (k = itemp; k < indRankcount; k++) {
alert('in check bGo');
if (document.getElementById("selectedScore" + i + k).checked) {
bGo = true;
j++;
} //if
} //for indRankcount - k loop

if (bGo) {
if (i == 0) {
par = (Math.ceil(indRankcount / 4));
}
else if (i == 1) {
par = (Math.ceil((iRankcount1 - iRankcount0) / 4));
alert('1: ' + par);
}
else if (i == 2) {
par = (Math.ceil((indRankcount2 - iRankcount1) / 4));
}
if (j == par) {
j = 0;
bGo = false;
itemp = indRankcount;
alert("itemp = " + itemp);
continue;
}
else {
alert('25% criteria not met.');
return false;
}
}
else { //else to check bGo
alert('Atleast one box need to be selected.');
return false;
}
j = 0;
bGo = false;
itemp = indRankcount;
alert("loop ends: i =" + i);
} //for rankcount - i loop

res = window.confirm('Are you sure you want to proceed with the selection?');
if (res) {
return true;
}
else {
return false;
}
} //end of validate

问题是当 i=0 时,它执行得很好。但是当 i=1 时,第二个循环 (K) 不会执行(我们将变量切换为常量 - 它适用于 itemp 或 indRankcount。只需一个数字即可完成。)它完全跳过。请帮助!谢谢!

最佳答案

在内循环(使用“k”)之后,有一个“item = indRankcount;”线。我想这就是问题的原因。

第一次运行时,“itemp”为 0,因此内部循环介入,但在第二次运行时,该值大于或等于“i​​ndRankcount”,因为您之前调用了代码。“iRankcount0”、“iRankcount1”和“iRankcount2”中存储了哪些值?尝试在 2. 循环之前打印“itemp”和“indRankcount”值。

已更新,在 k 循环之前尝试此操作,它将显示为什么 k 没有在 2. 执行时启动。

Console.log(i + "loop:: " + itemp + " val (k first val), " + " indRankcount " + val (k end val));

关于仅循环内的 Javascript 循环第一次执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48341773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com