慕尼黑1589570
2017-04-24 16:27
我把while条件改为小于11,下面的也改为11,结果页面崩溃为什么
while(myarr.length<=10)
{
num=Math.round(Math.random()*10);
for(i=0;i<10;i++)
{
if(num==myarr[i]) //myarry里面是否存在这个数,如果存在则跳过for循环,重新生成一个随机数
{break;}
if(i==myarr.length-1) //判断是否是myarr数组中的最后一个数,且myarr中不存在这个数,
{
myarr[i+1]=num; //便在myarr中存放这个数
break;
}
}
}
你通过上面的while已经将0-10的整数放入myarr里面了,
当你改成while(myarr.length<=11)时就变成了死循环,因为myarr里面的0-10只能存放唯一 一次,而myarr.length永远定格在11这个值,而且永远满足while的循环条件,再也不能插入任何值。
你第7行代码,var myarr=new Array(0);,声明的数组myarr含有0个元素,系统没有为它分配空间,后面你一直往里面放数据,肯定结果不对的啊;还有你的第15行,逻辑好乱 能不能问一下你是要实现什么效果呢
你可以测试一下,上面的改为11后,实际有多少个元素。
下面的索引应该是超限了。
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题