这是一段声称7位数随机数的代码;当var arr = [ ]; var newArr = [ ]; 这两个变量为全局变量的时候,每次触发点击事件,oDiv.innerHTML的结果都会在页面累加;但是当这两个变量为函数局部变量的时候,每次就可以只正常显示7个随机数。请大神解惑,谢谢啦~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
//获取元素input
var oBtn = document.getElementById('btn');
//获取元素div
var oDiv = document.getElementById('div1');
//声明两个空数组
/*var arr = [];
var newArr = [];*/
//给按钮添加事件,执行函数randomNum。
oBtn.onclick = function(){
oDiv.innerHTML = randomNum(35,7);
};
function randomNum(iAll,iNum){
var arr = [];
var newArr = [];
for(var i=1;i<=iAll;i++){
arr.push(i); // arr:1~35
}
for(var i=1;i<=iNum;i++){
//获取7个随机数
var num = arr.splice(Math.floor(Math.random()*arr.length),1);
newArr.push(num);
}
//返回包含7个随机数的数组
return newArr;
};
};
</script>
</head>
<body>
<input id="btn" type="button" value="生成随机数">
<div id="div1"></div>
</body>
</html>
相关分类