我试图遍历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);
}
如果
randnum
是undefined
,则调用CheckRandomNum
,但您继续循环(因此,在usedIconList
中,有15个项目,而不是--j
中的15个项目。如果更新逻辑以解决迭代问题,该代码不再产生未定义的项目。这是更新的代码笔:http://codepen.io/anon/pen/qymsK
我唯一更改的是添加再次执行循环:
if (randnum == -1 || randnum == undefined) {
--j;
randnum = CheckRandomNum(iconListLength, usedNumLst);
} else {
usedIconList.push(iconList[randnum]);
usedNumLst.push(randnum);
}