题解 | #双色球机选一注#

双色球机选一注

http://www.nowcoder.com/practice/4d712994d0364a159f8169b7b0e74d04

//注意 不能用es6语法
randomFn();

function randomFn() {
//红球节点及所有红球
const redBallRoot = document.querySelector('.red .balls-wp');
const redBallList = redBallRoot.children;
//蓝球节点及所有红球
const blueBallRoot = document.querySelector('.blue .balls-wp');
const blueBallList = blueBallRoot.children;

let redNumList =[];
let blueNumList=[];
//红球蓝球数字格式化
for(var indx=0;indx<33;indx++){
    redNumList.push(indx+1<10?`0${indx+1}`:`${indx+1}`)
}
 for(var indx=0;indx<16;indx++){
    blueNumList.push(indx+1<10?`0${indx+1}`:`${indx+1}`)
}
//生成不重复的随机数
function getRandomNums(num,list){
    //随机球数组
    const rsltList=[];
    for(var i=0;i<num;i++){
        //随机生成一枚球
        const getNumber=()=>{
          const getRslt = parseInt(Math.random()*list.length);
            if(list[getRslt]&&rsltList.indexOf(list[getRslt])===-1){
             //随机球若不存在则插入随机球数组里
             return rsltList.push(list[getRslt]);
            }
            //若存在则继续递归,直到随机球不存在
            else return getNumber();
            return;
        }
        getNumber();
    }
    return rsltList;
}
//红蓝随机球数组 大小排序
const headReds = getRandomNums(6,redNumList).sort((a,b)=>parseInt(a)-parseInt(b));
const headBlues = getRandomNums(1,blueNumList.sort((a,b)=>parseInt(a)-parseInt(b)));
//最终红蓝球数组
const rsltListRed = headReds.concat(redNumList.filter(e=>headReds.indexOf(e)===-1));
const rsltListBlue = headBlues.concat(blueNumList.filter(e=>headBlues.indexOf(e)===-1));
//便利最终数组进行dom操作,修改节点内容 以及 添加active class
for(var i=0;i<rsltListRed.length;i++){
    redBallList[i].innerText=rsltListRed[i];
     if(i<6)redBallList[i].classList.add('active');
}
for(var i=0;i<rsltListBlue.length;i++){
    blueBallList[i].innerText=rsltListBlue[i];
     if(i<1)blueBallList[i].classList.add('active');
}
// 06,10,13,18,23,27|05
//返回字符串拼接
const rsltString = headReds.join(',')+'|'+headBlues.join('');
//return `${headReds.join(',')}|${headBlues.join('')}` es6不让用。。
return rsltString

}

全部评论
z这个有人通过吗,我自己的代码超时了,复制了这个也超时
点赞 回复 分享
发布于 2023-03-07 21:51 浙江

相关推荐

看起来名字可以很长:笑死 我暑期实习阿里云的意向也被 qq 邮箱放在垃圾箱了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务