js数组
根据双色球摇奖规则,产生6个红球1个蓝球;红球范围1-33, 蓝球范围1-16.红球不能有重复的产生。思路:每次产生一个随机球,存入数组中,下一次生的随机球,要和数组中的进行比较,如果有相等的,则重新产生一个号(循环变量要减1),反之继续存入数组;直到产生6个球;蓝球单独产生;最后输出所有球。
第一种方法
var red=[parseInt(Math.random()*33+1)]//先准备一个//20
var bule = [parseInt(Math.random()*15+1)]
// 第二个 要跟 第一个 来比较
for(var i=0;red.length<6;i++){//1 2 3
// console.log(`第${i+1}次`);
var num=parseInt(Math.random()*33+1)//21 20 20
if(red.indexOf(num)==-1){
red.push(num)//[20,21]
}
}
console.log(`红球:${red}, 篮球:${bule}`);
第二种方法
var arr = []
var i=0
var bule= parseInt(Math.random() *16 + 1)
function show() {
for ( i ; i < 6;) {
var red = parseInt(Math.random() * 33 + 1)
if(arr[arr.length-1]!=red){
arr.push(red)
i++
}else{
show()
}
}
}
show();
document.write('red:'+arr+' bule:'+bule+'<br>');