javascript在递归循环中返回未定义的数字

undefined number return in recursive loop javascript

本文关键字:未定义 数字 返回 递归 循环 javascript      更新时间:2023-09-26

我正在尝试通过15个字符串列表循环,并希望将随机值绑定到另一个列表。

我还使用了一个列表来检查随机数中使用的数字。我在这个递归循环和随机数中遇到了问题。为什么有时会产生未定义的值?

请帮助我,是的,我从最后一天开始检查了每一个其他选项,这不是重复或重复的问题。所以请在投票前检查下面的代码

codepen在这里http://codepen.io/anon/pen/CaAfi

我认为问题出在这个分支上:

if (randnum == -1 || randnum == undefined) {
    randnum = CheckRandomNum(iconListLength, usedNumLst);
} else {
    usedIconList.push(iconList[randnum]);
    usedNumLst.push(randnum);
}

如果randnumundefined,你调用CheckRandomNum,但你继续循环(所以你的usedIconList不是15个项目,你有n个项目。如果您更新您的逻辑来处理迭代问题,代码将不再产生未定义的项。

这是一个更新的代码依赖:http://codepen.io/anon/pen/qymsK

我唯一改变的是添加--j再次执行循环:

if (randnum == -1 || randnum == undefined) {
    --j;
    randnum = CheckRandomNum(iconListLength, usedNumLst);
} else {
    usedIconList.push(iconList[randnum]);
    usedNumLst.push(randnum);
}