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

双色球机选一注

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

本地运行是可以的,但是提交就是不行,题目让使用es5,以下代码中有es6写法,哪位大佬自己去用es5玩吧
首先是css美化一下啊

b {
      display: block;
      width: 30px;
      height: 30px;
      float: left;
      text-align: center;
      line-height: 30px;
      border-radius: 50%;
      border: 1px solid #112234;
      margin: 2px;
    }
    .article{
      background: red;
    }
    .balls-wp{
      overflow: hidden;
    }

js代码

 var arrRed=[],//红球节点
arrBlue=[];//蓝球节点
  a = [],//红球随机数
    b = []//蓝球随机数
 //获取红球随机
  function Rdm(arr) {
    if (arr.length >= 6) {
      return arr.sort(function(a,b){
        return a-b
      })
    } else {
      let Num = arrRed[Math.floor(Math.random() * arrRed.length)]
      if (arr.indexOf(Num) == '-1') {
        arr.push(Num)
      }
//递归调用本身
      return Rdm(arr)
    }
  }
  //红球选中  添加删除节点
  function replace(arr1, cosArr) {
    for(let i =0;i<cosArr.length;i++){
//获取父节点
      var box=document.querySelector('.balls-wp');
//创建文本
    var p0=document.createElement("b");
//添加文本样式
    p0.classList.add("article")
//创建节点
    var txt=document.createTextNode(cosArr[cosArr.length-1-i]);
//添加节点
    p0.appendChild(txt);
    box.insertBefore(p0,document.querySelector('.balls-wp').childNodes[0]);
    }
    arr1.forEach((ele,index) => {
      if(cosArr.indexOf(ele.innerText)!='-1'&&index>6){
//删除重复节点
        document.querySelector('.balls-wp').removeChild(ele)
      }
    })
  }
//蓝球添加 删除节点 和上面基本一样 懒得优化了
  function Replace(arr1, cosArr) {
    for(let i =0;i<cosArr.length;i++){
      var box=document.querySelectorAll('.balls-wp')[1];
    var p0=document.createElement("b");
    p0.classList.add("article")
    var txt=document.createTextNode(cosArr[0]);
    p0.appendChild(txt);
    box.insertBefore(p0,document.querySelectorAll('.balls-wp')[1].childNodes[0]);
    }
    arr1.forEach((ele,index) => {
      if(cosArr.indexOf(ele.innerText)!='-1'&&index>1){
        document.querySelectorAll('.balls-wp')[1].removeChild(ele)
      }
    })
  }
//获取所有节点
function nodetype (ar,arr){
    for (var i = 0; i < ar.length; i++) {
    if (ar[i].nodeType == 1) { //判断节点是否为元素节点
      arr.push(ar[i].innerText)
    }
  }
  }
  //红球随机数
function randomFn() {
//获取所有红球节点
var red = document.querySelector('.balls-wp').childNodes
nodetype(red,arrRed)
//获取所有蓝球节点
  var blue = document.querySelectorAll('.balls-wp')[1].childNodes
  nodetype(blue,arrBlue)
//抽取蓝球
  b.push(arrBlue[Math.floor(Math.random() * arrBlue.length)])
//抽取红球
  Rdm(a,arrRed)
//红球位置更换
  replace(red,a)
//蓝球位置更换
  Replace(blue,b)
//返回格式
  return a.join(',')+'|'+b[0]
}

randomFn();
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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