抽奖

    1. const readline = require('readline-sync');
    2. let nameStr = `余秋雨,文章,曾诚,高茂卜,孙建峰,唐明,黄宇,肖玉林,简帮炜,曾薪月,侯芹,田浩民,梁超栋,彭浩峰,李嘉林,房俊霖,马玉琨`;
    3. // 封装随机函数
    4. function random(n, m) {
    5. if (!m) { // 防止用户只传一个参数,(不写这个,只传一个参数,会报错NaN)
    6. [m, n] = [n, 0]
    7. }
    8. let i = parseInt(Math.random() * (m - n + 1) + n)
    9. return i
    10. }
    11. // 将字符串通过 split 转化为 数组
    12. let str = nameStr.split(',')
    13. console.log(str);
    14. //使用函数
    15. Lottery()
    16. //抽奖主函数
    17. function Lottery() {
    18. for (let i = 3; i > 0; i--) {
    19. console.log(`请输入${i}等奖的名额`);
    20. let opt = readline.question() - 0;
    21. for (let j = 1; j <= opt; j++) { //想要几个人中奖
    22. let index = random(str.length - 1); //下标随机数为-下标长度
    23. console.log(`${i}得奖为:${str[index]}`);
    24. str.splice(index, 1) //删除选中那个人
    25. }
    26. }
    27. }

    注意:

    • 因为这里只抽三次奖,所以三次应该套在外面
    • 中奖名额是我们定的,所以需要设置一个上限 j <= opt
    • 最重要的是:通过 splice 删除,会影响原数组。这样可以避免出现重复的情况

    双色球

    1. /*
    2. 红球 6个 数字范围:1-33 不重复
    3. 蓝球 1个 数字范围:1-16
    4. 中奖规则:R + B 即 红球选中个数 搭配 蓝球号码。
    5. 一等奖:6+1 即:红球中6个,蓝球也中
    6. 一等奖:6+1 (钱(ni)太(zhong)多(bu)了,也封顶¥500万?)
    7. 二等奖:6+0 (封顶¥500万)
    8. 三等奖:5+1 (¥3000)
    9. 四等奖:5+0 | 4+1 (¥200)
    10. 五等奖:4+0 | 3+1 (¥10)
    11. 六等奖:2+1 | 1+1 | 0+1(¥5)
    12. */
    13. const readline = require('readline-sync');
    14. //封装随机函数
    15. function random(n, m) {
    16. if (!m) {
    17. [m, n] = [n, 0]
    18. }
    19. let i = parseInt(Math.random() * (m - n + 1) + n)
    20. return i; // 需要一个返回值
    21. }
    22. //双色球 随机数
    23. function createNumber() {
    24. //去重复
    25. let s = new Set(); // 通过Set 创建的变量。里面的值都是唯一的。
    26. //往里面添加值
    27. while (s.size < 6) { // 可以设置 对象的长度
    28. s.add(random(1, 33))
    29. }
    30. // 将对象转化为数组,并且排序
    31. let redBalls = [...s].sort((a, b) => a - b);
    32. console.log(redBalls);
    33. let blueBall = random(1, 16)
    34. console.log(blueBall);
    35. //需要一个返回值
    36. return [redBalls, blueBall] // 函数都需要返回值,否则没办法输出
    37. }
    38. //机选
    39. let computer = createNumber()
    40. console.log(computer);
    41. //中奖号码
    42. let blueBall = random(1, 16)
    43. let [luckyredBalls, luckyblueBall] = createNumber()
    44. console.log(luckyredBalls, luckyblueBall);
    45. //红球相同的个数,也就是交集
    46. // let conut = computer[0].filter(function(item){
    47. // return luckyredBalls.indexOf(item)!=-1;
    48. // }).length;
    49. let conut = computer[0].filter((item) => luckyredBalls.indexOf(item) != -1).length
    50. console.log(conut);