反复运行代码发现数组长度增加,需要改成新数组覆盖原数组,如何实现?
时间: 2024-01-27 18:04:47 浏览: 21
你可以在每次调用 `lottery` 函数之前,清空 `redArr` 数组,然后重新生成新的号码。可以使用 `redArr.length = 0;` 来清空数组,然后再执行生成代码。这样就可以保证每次生成的号码都是新的,不会重复添加到原来的数组中。下面是修改后的代码:
```
let redArr = [];
let blueNum = Math.round(Math.random() * 15)+1;
function lottery(){
redArr.length = 0; // 清空数组
let redSelectArr = [];
let redArrStr = '';
//对比两个红色球数组,相同值
let ar = redSelectArr.filter(function(n) {
return redArr.indexOf(n) != -1
});
for( let i=0;i<6;i++){
//随机生成1-33号码
let num=Math.round(Math.random() * 32)+1;
//判断地址不存在推入
if(redArr.indexOf(num)==-1){
redArr.push(num);
}else{
//存在了使i-1增加一次循环次数
i--;
}
}
for (let i=0;i<redArr.length;i++){
redArrStr += '<div style="margin: 0 10px">'+redArr[i]+'</div>'
}
$(".ball").html(redArrStr);
}
```
这样,每次运行 `lottery` 函数时,都会清空 `redArr` 数组并生成新的号码。