为什么减到最后两个元素时,元素就不随机变动了。那位能帮助解决一下。谢谢

weixin_46430414 2020-03-21 10:54:41
,随机从H数组中产生一个元素
var h = ["刘","李","你","他","红","白","黑","黄","它"];
var o = [];
var s = h.length - 1;
start.onclick = function(){
if((intv==undefined)&&(s>0)){
intv = setInterval(function(){
q = Math.floor(Math.random()*s);
document.getElementById("num").innerHTML = h[q];
},300);
h.splice(q,1);
s=s-1;
}

}

,停止执行随机函数,并将随机产生的元素添加到另一数组中
_stop.onclick = function(){

clearInterval(intv);
intv=null;
o.push(h[q])

}
到最后两位元素时就不变动了?为什么?怎么解决啊?兄弟拜托大家了。
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
因为你
var s = h.length - 1;
导致
q = Math.floor(Math.random() * s);
中q的结果值在0到s-1之间,也就是h.length-1-1,你当然永远得不到最后一个元素咯,另外你这是javascript的,不是javaSE的
三仙半 2020-03-22
  • 打赏
  • 举报
回复
兄弟,你确定你的这个问题是JavaSE方面的?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧